/*************************************************************************************************************************************/ /* */ /* C A L C U L D E ' P I ' P A R L A F O R M U L E D E */ /* S A L A M I N - B R E N T Q U A R T I Q U E : */ /* */ /* */ /* Author of '$xtc/pi_SalBr4.01$c' : */ /* */ /* Jean-Francois COLONNA (LACTAMME, AAAAMMJJhhmmss). */ /* */ /*************************************************************************************************************************************/ #include "INCLUDES.01.I" /* Introduit le 20051116101829... */ extern double sqrt(); extern double pow(); #define UN 1.0 #define DEUX 2.0 #define TROIS 3.0 #define QUATRE 4.0 #define SIX 6.0 #define ITER 2 main() { double k; double A_k_1=SIX - (QUATRE*sqrt(DEUX)); double A_k; double Y_k_1=sqrt(DEUX) - UN; double Y_k; double pi; for (k=0 ; k<ITER ; k++) { Y_k = (UN - pow(UN - EXP4(Y_k_1),UN/QUATRE)) / (UN + pow(UN - EXP4(Y_k_1),UN/QUATRE)); A_k = (A_k_1*EXP4(UN +Y_k)) - ((pow(DEUX,(DEUX*k)+TROIS))*Y_k*(UN+Y_k+EXP2(Y_k))); A_k_1 = A_k; Y_k_1 = Y_k; /* Formule donnee a la page 53 du numero 1, volume 19 de The Mathematical Intelligencer */ /* et page 594 et 623 de "PI a Source Book" des freres Borwein. */ } pi = UN / A_k; printf("\n pi = %.12f",pi); }