/*************************************************************************************************************************************/
/* */
/* 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