Nifty math trick with hierarchical query


Using the algorithm discovered by David Bailey, Peter Borwein, and Simon Plouffe, you can easily generate values of pi with a simple recursive query…

SQL> SELECT d, to_char(bbp, rpad('0.',55, '9')) bbp,
  2    TO_CHAR(
  3       SUM(bbp) OVER (ORDER BY d),
  4       '9.' || RPAD('9', d - 1, '9')
  5    ) pi
  6    FROM (SELECT LEVEL d,
  7                   POWER(16, -(LEVEL - 1))
  8                 * (  4 / (8 * (LEVEL - 1) + 1)
  9                    - 2 / (8 * (LEVEL - 1) + 4)
 10                    - 1 / (8 * (LEVEL - 1) + 5)
 11                    - 1 / (8 * (LEVEL - 1) + 6))
 12                     bbp
 13            FROM DUAL
 14          CONNECT BY LEVEL <= 38);

  D BBP                                                          PI
--- ------------------------------------------------------------ ----------------------------------------
  1  3.13333333333333333333333333333333333333000000000000000      3.
  2  0.00808913308913308913308913308913308913308800000000000      3.1
  3  0.00016492392411510058568882098293862999745400000000000      3.14
  4  0.00000506722085385878489326765188834154351396000000000      3.142
  5  0.00000018789290093772001666738508843772001666720000000      3.1416
  6  0.00000000776775121517735681309382263783112139415700000      3.14159
  7  0.00000000034479329305086272635969401468053759158800000      3.141593
  8  0.00000000001609187715553700527429096273205488602519000      3.1415927
  9  0.00000000000077957029540010122791277882390414359723220      3.14159265
 10  0.00000000000003887115259909751224518898399125507993590      3.141592654
 11  0.00000000000000198322539359813099744403743678780728487      3.1415926536
 12  0.00000000000000010309712169788873230460615359913961954      3.14159265359
 13  0.00000000000000000544347406057178666434000298497848856      3.141592653590
 14  0.00000000000000000029121117943841783833432916474186319      3.1415926535898
 15  0.00000000000000000001575498009770082070311785298679383      3.14159265358979
 16  0.00000000000000000000086069263270039599262676755656370      3.141592653589793
 17  0.00000000000000000000004742046744556226855262717169064      3.1415926535897932
 18  0.00000000000000000000000263228669401317585860675420461      3.14159265358979324
 19  0.00000000000000000000000014709093902773314327264205417      3.141592653589793238
 20  0.00000000000000000000000000826833002827638605906177487      3.1415926535897932385
 21  0.00000000000000000000000000046727110163528570518908320      3.14159265358979323846
 22  0.00000000000000000000000000002653485901449924370022705      3.141592653589793238463
 23  0.00000000000000000000000000000151345479607531561281484      3.1415926535897932384626
 24  0.00000000000000000000000000000008666828560347770253967      3.14159265358979323846264
 25  0.00000000000000000000000000000000498130681533106648748      3.141592653589793238462643
 26  0.00000000000000000000000000000000028727019197415804591      3.1415926535897932384626434
 27  0.00000000000000000000000000000000001661838244489253463      3.14159265358979323846264338
 28  0.00000000000000000000000000000000000096413362728707559      3.141592653589793238462643383
 29  0.00000000000000000000000000000000000005608493642017818      3.1415926535897932384626433833
 30  0.00000000000000000000000000000000000000327065934758869      3.14159265358979323846264338328
 31  0.00000000000000000000000000000000000000019117544868650      3.141592653589793238462643383280
 32  0.00000000000000000000000000000000000000001119879586043      3.1415926535897932384626433832795
 33  0.00000000000000000000000000000000000000000065734562356      3.14159265358979323846264338327950
 34  0.00000000000000000000000000000000000000000003865856221      3.141592653589793238462643383279503
 35  0.00000000000000000000000000000000000000000000227760336      3.1415926535897932384626433832795029
 36  0.00000000000000000000000000000000000000000000013441452      3.14159265358979323846264338327950288
 37  0.00000000000000000000000000000000000000000000000794528      3.141592653589793238462643383279502884
 38  0.00000000000000000000000000000000000000000000000047036      3.1415926535897932384626433832795028842

38 rows selected.

SQL>
Advertisements

11gR2 on OEL6? yes and no


According to recent press release http://www.oracle.com/us/corporate/press/1563775 Yes- you can install 11gR2 on Oracle’s latest release of Linux.

However, I was not successful in my attempts. Upon further research it seems the certification of db and os is only for 11.2.0.3 which is only available through download from Oracle support. That’s fine for work where we have a CSI, but no go for my personal use in learning/testing things. So back to v5.8 for me and install went flawlessly.

%d bloggers like this: