/*************************************************************************************************************************************/ /* */ /* T E S T D E L A F O N C T I O N ' fFCzeta_sommation_Euler_MacLaurin(...) ' : */ /* */ /* */ /* Author of '$xtKg/zeta.11$K' : */ /* */ /* Jean-Francois COLONNA (LACTAMME, 19990611180422). */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* I N T E R F A C E ' listG ' : */ /* */ /* */ /* :Debut_listG: */ /* :Fin_listG: */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* D I R E C T I V E S S P E C I F I Q U E S D E C O M P I L A T I O N : */ /* */ /*************************************************************************************************************************************/ @define PRAGMA_CPP_____MODULE_NON_DERIVABLE /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* F I C H I E R S D ' I N C L U D E S : */ /* */ /*************************************************************************************************************************************/ #include INCLUDES_BASE /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* P A R A M E T R E S : */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* M A C R O S U T I L E S : */ /* */ /*************************************************************************************************************************************/ #define PRINT(x,y) \ Bblock \ DEFV(complexe,z); \ DEFV(complexe,zeta); \ DEFV(Float,INIT(module_zeta,FLOT__UNDEF)); \ DEFV(Float,INIT(argument_zeta,FLOT__UNDEF)); \ \ Cinitialisation(z,x,y); \ /* Calcul de z=x+iy. */ \ CALS(fFCzeta_sommation_Euler_MacLaurin(z)); \ Cegal(zeta,fFCzeta_sommation_Euler_MacLaurin_____valeur); \ /* Calcul de l'approximation 'approximation' de 'zeta(z). On procede en deux temps afin */ \ /* de ne pas evaluer deux fois la fonction 'fFCzeta_sommation_Euler_MacLaurin(...)' a cause */ \ /* de la programmation de 'Cegal(...)' ('v $ximcd/operator$FON FCegal'). */ \ \ EGAL(module_zeta,FCmodule(zeta)); \ EGAL(argument_zeta,FCargument_2PI(zeta)); \ \ CAL2(Prin6("zeta(%+g,%+g)=(%+g,%+g)=(%+g,%+g)\n" \ ,Reelle(z),Imaginaire(z) \ ,Reelle(zeta),Imaginaire(zeta) \ ,module_zeta,argument_zeta \ ) \ ); \ Eblock /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* T E S T D E L A F O N C T I O N ' fFCzeta_sommation_Euler_MacLaurin(...) ' : */ /* */ /*************************************************************************************************************************************/ BCommande(nombre_d_arguments,arguments) /*-----------------------------------------------------------------------------------------------------------------------------------*/ Bblock /*..............................................................................................................................*/ GET_ARGUMENTS_(nombre_d_arguments ,BLOC(CONTROLE_DES_COMPATIBILITES_DES_FONCTIONS_DES_NOMBRES_COMPLEXES; /* Mis sous cette forme le 20240626074819... */ GET_ARGUMENT_F("precision_Bernoulli=""pb=",calcul_des_nombres_de_Bernoulli_____precision); GET_ARGUMENT_F("pz=""precision_zeta=",fFCzeta_sommation_Euler_MacLaurin_____precision_du_calcul); GET_ARGUMENT_L("editer_zeta=""ez=",fFCzeta_sommation_Euler_MacLaurin_____editer_les_parametres_de_calcul); GET_ARGUMENT_L("editer_famma=""ef=",fFCfamma_sommation_Euler_MacLaurin_____editer_les_parametres_de_calcul); GET_ARGUMENT_I("Nmin=" ,fFCzeta_sommation_Euler_MacLaurin_____valeur_minimale_de_nombre_N_lors_du_calcul ); GET_ARGUMENT_I("Nmax=" ,fFCzeta_sommation_Euler_MacLaurin_____valeur_maximale_de_nombre_N_lors_du_calcul ); GET_ARGUMENT_I("Vmin=" ,fFCzeta_sommation_Euler_MacLaurin_____valeur_minimale_de_nombre_V_lors_du_calcul ); GET_ARGUMENT_I("Vmax=" ,fFCzeta_sommation_Euler_MacLaurin_____valeur_maximale_de_nombre_V_lors_du_calcul ); ) ); PRINT(0.0,0.0); /* Valeur attendue (-0.5,0.0). */ PRINT(1.0,0.0); /* Valeur attendue (infini,0.0). */ CAL2(Prin0("\n")); PRINT(-1.0,0.0); /* Valeur attendue (-1/12,0)=(0.0833333,0.0). */ PRINT(-2.0,0.0); PRINT(-3.0,0.0); PRINT(-4.0,0.0); PRINT(-5.0,0.0); PRINT(-6.0,0.0); PRINT(-7.0,0.0); PRINT(-8.0,0.0); PRINT(-9.0,0.0); CAL2(Prin0("\n")); PRINT(0.5,0.0); /* Valeur attendue (-1.46035496,0.0). */ PRINT(0.5,18.0); /* Valeur attendue (+2.32922,-0.18865). */ PRINT(2.0,0.0); /* Valeur attendue (+1.64493378,0.0). */ PRINT(3.0,0.0); /* Valeur attendue (+1.20205,0.0). */ CAL2(Prin0("\n")); PRINT(0.5,14.134725); PRINT(0.5,21.02); PRINT(0.5,25.01); PRINT(0.5,30.42); PRINT(0.5,32.93); PRINT(0.5,37.58); /* Valeur attendue (0.0,0.0). */ CAL2(Prin0("\n")); PRINT(-19.500,+34.5); PRINT(-19.501,+34.5); PRINT(-19.502,+34.5); PRINT(-19.503,+34.5); PRINT(-19.504,+34.5); PRINT(-19.505,+34.5); PRINT(-19.506,+34.5); PRINT(-19.507,+34.5); PRINT(-19.508,+34.5); PRINT(-19.509,+34.5); /* Ici, il faut de la "continuite"... */ CAL2(Prin0("\n")); PRINT(-20.0,+17.0); /* Valeur attendue (+0.6694277274e+10,-0.2672524462e+11). */ PRINT(-30.0,-53.0); /* Valeur attendue (+0.6668001546e+29,+0.4774846360e+29). */ CAL2(Prin0("\n")); RETU_Commande; Eblock ECommande