/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        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);
     }



Copyright © Jean-François Colonna, 2021-2023.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 2021-2023.