/*************************************************************************************************************************************/
/* */
/* D E F I N I T I O N D E C E R T A I N E S D E R I V E E S F O R M E L L E S A L ' O R D R E N : */
/* */
/* */
/* Nota : */
/* */
/* Ce fichier '$I' contient a son niveau */
/* un certain nombre de derivees d'operateur. */
/* Il est traite directement par 'v $xcc/cpp$Z' */
/* via 'v $xcp/DerivFormel$K .xcp.DerivFormel.I'. */
/* De cette facon la derivation de ces operateurs */
/* peut se faire car, en effet, ces dernieres se */
/* trouvent au niveau le plus bas des 'include's */
/* ('v $xcc/cpp$Z 20101213093204'). */
/* */
/* On notera un avantage important a cette facon */
/* de proceder : les operateurs ainsi definis peuvent */
/* etre l'objet du 'GooF', ce qui ne serait pas possible */
/* autrement... */
/* */
/* Ce fichier '$I' est traite comme un '$K' (par */
/* 'v $xcc/cpp$Z'), mais etant donne qu'il sert */
/* d'intermediaire pour generer lui-meme des '$I's, */
/* c'est ainsi qu'il fut baptise... */
/* */
/* */
/* Author of '$xcp/DerivFormel$I' : */
/* */
/* Jean-Francois Colonna (LACTAMME, 20101221135750). */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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_DERIVABLE
/* Essentiel pour acceder a 'v $xcc/cpp$Z DordreN'... */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* F I C H I E R S D ' I N C L U D E S : */
/* */
/*************************************************************************************************************************************/
@define PRAGMA_CPP_____DEFINE_AU_PREALABLE "NoGeneration_____maths_defen_DerivFormel_1_DEF"
/* Introduit le 20161213215500 et transforme en un 'PRAGMA' le 20161214125944 car, en effet, */
/* la formulation : */
/* */
/* #define NoGeneration_____maths_defen_DerivFormel_1_DEF */
/* */
/* etait ignoree dans 'v $xcc/cpp$Z'... */
#include INCLUDES_MINI
/* Le 20161218105902, 'INCLUDES_MINI' a remplace 'INCLUDES_BASE' car, en effet, cela suffit */
/* et de plus cela resoud le probleme 'v $xcc/cpp$Z 20161217101315'... */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* P A R A M E T R E S : */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* M A C R O S U T I L E S " U N I V E R S E L L E S " : */
/* */
/*************************************************************************************************************************************/
/* Ces definitions sont placees en '$PASSE_2' : en fait cela est relativement arbitraire */
/* a la condition que cela ne soit pas '$PASSE_1'. La conversion en '$PASSE_1' est faite */
/* explicitement par 'v $xcc/cpp$Z 20101221144436'... */
/* Le 20101223203957 je note que les noms ne peuvent etre 'd_MACRO(...)' ou 'MACRO(...)' */
/* est celui d'un operateur a deriver car, en effet, il y a conflit avec le derivateur */
/* formel de 'v $xcc/cpp$Z'. Ainsi un nom tel 'D_MACRO(...)' sera parfait ou mieux, le */
/* 20110105092947 'd1_MACRO(...)' fut adopte pour "Derivee Premiere -1-". */
=define d1_INTERPOLATION_CUBIQUE(Forg,d_Forg,DForg,d_DForg,Fext,d_Fext,DFext,d_DFext,lambda,d_lambda) \
%d#INTERPOLATION_CUBIQUE(Forg,DForg \
,Fext,DFext \
,lambda \
)%
/* Derivee a l'ordre 1 de 'INTERPOLATION_CUBIQUE(...)'. */
/* */
/* Le 20101223172434 fut introduit le couple {%,%} ('v $xcp/TabRecursive$K K_POUR_CENT') */
/* afin de faciliter la tabulation du code genere... */
/* */
/* La "qualite" de l'operateur 'd1_INTERPOLATION_CUBIQUE(...)' peut etre validee grace au */
/* programme 'v $xtc/DerivFormel.01$c'... */
=define d1_ADD2(x,d_x,y,d_y) \
%d#ADD2(x,y)%
=define d2_ADD2(x,d_x,d_d_x,y,d_y,d_d_y) \
%d#d#ADD2(x,y)%
/* Somme de deux facteurs "simples" (c'est-a-dire des variables et non pas des */
/* expressions...). Ceci fut introduit le 20161216102525 (surtout a des fins de test...). */
/* */
/* Le 20161217102804, je me demande si les arguments {d_x,d_y} sont utiles... */
=define d1_ADD3(x,d_x,y,d_y,z,d_z) \
%d#ADD3(x,y,z)%
=define d2_ADD3(x,d_x,d_d_x,y,d_y,d_d_y,z,d_z,d_d_z) \
%d#d#ADD3(x,y,z)%
/* Somme de trois facteurs "simples" (c'est-a-dire des variables et non pas des */
/* expressions...). Ceci fut introduit le 20161216102525 (surtout a des fins de test...). */
/* */
/* Le 20161217102804, je me demande si les arguments {d_x,d_y,d_z} sont utiles... */
=define d1_ADD4(x,d_x,y,d_y,z,d_z,t,d_t) \
%d#ADD4(x,y,z,t)%
=define d2_ADD4(x,d_x,d_d_x,y,d_y,d_d_y,z,d_z,d_d_z,t,d_t,d_d_t) \
%d#d#ADD4(x,y,z,t)%
/* Somme de quatre facteurs "simples" (c'est-a-dire des variables et non pas des */
/* expressions...). Ceci fut introduit le 20161216102525 (surtout a des fins de test...). */
/* */
/* Le 20161217102804, je me demande si les arguments {d_x,d_y,d_z,d_t} sont utiles... */
=define d1_MUL2(x,d_x,y,d_y) \
%d#MUL2(x,y)%
=define d2_MUL2(x,d_x,d_d_x,y,d_y,d_d_y) \
%d#d#MUL2(x,y)%
/* Produit de deux facteurs "simples" (c'est-a-dire des variables et non pas des */
/* expressions...). Ceci fut introduit le 20161216102525 (surtout a des fins de test...). */
/* */
/* Le 20161217102804, je me demande si les arguments {d_x,d_y} sont utiles... */
=define d1_MUL3(x,d_x,y,d_y,z,d_z) \
%d#MUL3(x,y,z)%
=define d2_MUL3(x,d_x,d_d_x,y,d_y,d_d_y,z,d_z,d_d_z) \
%d#d#MUL3(x,y,z)%
/* Produit de trois facteurs "simples" (c'est-a-dire des variables et non pas des */
/* expressions...). Ceci fut introduit le 20101228191219 (surtout a des fins de test...) */
/* et complete le 20110105095023 avec la derivee seconde. */
/* */
/* Le 20161217102804, je me demande si les arguments {d_x,d_y,d_z} sont utiles... */
=define d1_MUL4(x,d_x,y,d_y,z,d_z,t,d_t) \
%d#MUL4(x,y,z,t)%
=define d2_MUL4(x,d_x,d_d_x,y,d_y,d_d_y,z,d_z,d_d_z,t,d_t,d_d_t) \
%d#d#MUL4(x,y,z,t)%
/* Produit de quatre facteurs "simples" (c'est-a-dire des variables et non pas des */
/* expressions...). Ceci fut introduit le 20101228191219 (surtout a des fins de test...) */
/* et complete le 20110105095023 avec la derivee seconde. */
/* Ces definitions sont placees en '$PASSE_2' : en fait cela est relativement arbitraire */
/* a la condition que cela ne soit pas '$PASSE_1'. La conversion en '$PASSE_1' est faite */
/* explicitement par 'v $xcc/cpp$Z 20101221144436'... */
/* Le 20101223203957 je note que les noms ne peuvent etre 'd_MACRO(...)' ou 'MACRO(...)' */
/* est celui d'un operateur a deriver car, en effet, il y a conflit avec le derivateur */
/* formel de 'v $xcc/cpp$Z'. Ainsi un nom tel 'D_MACRO(...)' sera parfait ou mieux, le */
/* 20110105092947 'd1_MACRO(...)' fut adopte pour "Derivee Premiere -1-". */
/* On notera le 20161207161106 que j'ai essaye de mettre ici : */
/* */
/* -define OPERATEUR(x,y) \ */
/* EXP2(ADD2(x,y)) */
/* =define d1_OPERATEUR(x,d_x,y,d_y) \ */
/* %d#OPERATEUR(x,y)% */
/* */
/* (le 'EXP2(ADD2(x,y))' etant tout a fait arbitraire) */
/* */
/* mais cela ne marche pas a cause de 'v $xcc/cpp$Z $CA.......$module$W.$fichierA' */
/* execute en 'passe E' car, en effet, alors le '-define OPERATEUR(' se retrouve deux */
/* fois dans le resultat ('$module$w') de la concatenation par le '$CA' ci-dessus, alors */
/* que, par exemple, '-define INTERPOLATION_CUBIQUE(' ne s'y retrouve qu'une seule fois */
/* puisqu'il est defini a l'exterieur de '$fichierA'... */
/* */
/* Le 20161217102804, je me demande si les arguments {d_x,d_y,d_z,d_t} sont utiles... */
=define d1_ADD2_MUL2(condition,x,d_x,y,d_y) \
%OPC2(condition,d#ADD2,d#MUL2,x,y)%
=define d2_ADD2_MUL2(condition,x,d_x,d_d_x,y,d_y,d_d_y) \
%OPC2(condition,d#d#ADD2,d#d#MUL2,x,y)%
/* Derivee introduite le 20161216102525 pour voir ce qu'il se passe avec les 'OPC?(...)'... */
/* */
/* Le 20161217102804, je me demande si les arguments {d_x,d_y} sont utiles... */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* M A C R O S U T I L E S " S P E C I F I Q U E S " : */
/* */
/*************************************************************************************************************************************/
#include xrs/huit.11.1.I"
/* Definition de l'equation de la courbe en "8" dans le plan {OX,OY} destinee a */
/* 'v $xrs/huit.11$K' (introduit le 20161207094703). */
=define d1_XPlan_xrs_huit_11(u,v) \
%d#XPlan_xrs_huit_11(u,v)%
=define d1_YPlan_xrs_huit_11(u,v) \
%d#YPlan_xrs_huit_11(u,v)%
/* Definition des deux derivees (introduit le 20161207094703). */
/* */
/* Le 20161208100302, afin d'etre homogene avec le nom de leurs derivees, 'XPlan(u,v)' et */
/* 'YPlan(u,v)' ont ete rebaptises 'XPlan_xrs_huit_11(u,v)' et 'YPlan_xrs_huit_11(u,v)' */
/* respectivement... */
#include xrs/cylindre.31.1.I"
/* Definition de l'equation de l'helice destinee a 'v $xrs/cylindre.31$K' (introduit */
/* le 20170130125404). */
=define d1_XEspace_xrs_cylindre_31(u,v) \
%d#XEspace_xrs_cylindre_31(u,v)%
=define d1_YEspace_xrs_cylindre_31(u,v) \
%d#YEspace_xrs_cylindre_31(u,v)%
=define d1_ZEspace_xrs_cylindre_31(u,v) \
%d#ZEspace_xrs_cylindre_31(u,v)%
/* Definition des trois derivees (introduit le 20170130125404). */
#include xrs/epicycloide.11.1.I"
/* Definition de l'equation de la courbe "epycycloidale" dans le plan {OX,OY} destinee a */
/* 'v $xrs/epicycloide.11$K' (introduit le 20161212104641). */
=define d1_XPlan_xrs_epicycloide_11(u,v) \
%d#XPlan_xrs_epicycloide_11(u,v)%
=define d1_YPlan_xrs_epicycloide_11(u,v) \
%d#YPlan_xrs_epicycloide_11(u,v)%
/* Definition des deux derivees (introduit le 20161212104641). */
#include xrs/helicoide.11.1.I"
/* Definition de l'equation de l'helice destinee a 'v $xrs/helicoide.11$K' (introduit */
/* le 20161226101433). */
=define d1_XEspace_xrs_helicoide_11(u,v) \
%d#XEspace_xrs_helicoide_11(u,v)%
=define d1_YEspace_xrs_helicoide_11(u,v) \
%d#YEspace_xrs_helicoide_11(u,v)%
=define d1_ZEspace_xrs_helicoide_11(u,v) \
%d#ZEspace_xrs_helicoide_11(u,v)%
/* Definition des trois derivees (introduit le 20161226101433). */
#include xrs/epicycloide.21.1.I"
/* Definition de l'equation de la courbe "epycycloidale" dans l'espace {OX,OY,OZ} destinee a */
/* 'v $xrs/epicycloide.21$K' (introduit le 20161230093222). */
=define d1_XEspace_xrs_epicycloide_21(u,v) \
%d#XEspace_xrs_epicycloide_21(u,v)%
=define d1_YEspace_xrs_epicycloide_21(u,v) \
%d#YEspace_xrs_epicycloide_21(u,v)%
=define d1_ZEspace_xrs_epicycloide_21(u,v) \
%d#ZEspace_xrs_epicycloide_21(u,v)%
/* Definition des trois derivees (introduit le 20161230093222). */
#include xrs/epicycloide.31.1.I"
/* Definition de l'equation de la courbe "epycycloidale" dans l'espace {OX,OY,OZ} destinee a */
/* 'v $xrs/epicycloide.31$K' (introduit le 20170110130649). */
=define d1_XEspace_xrs_epicycloide_31(u,v) \
%d#XEspace_xrs_epicycloide_31(u,v)%
=define d1_YEspace_xrs_epicycloide_31(u,v) \
%d#YEspace_xrs_epicycloide_31(u,v)%
=define d1_ZEspace_xrs_epicycloide_31(u,v) \
%d#ZEspace_xrs_epicycloide_31(u,v)%
/* Definition des trois derivees (introduit le 20170110130649). */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I T I O N D E C E R T A I N E S D E R I V E E S F O R M E L L E S A L ' O R D R E N : */
/* */
/*************************************************************************************************************************************/