_______________________________________________________________________________________________________________________________________ /*************************************************************************************************************************************/ /* */ /* F O N C T I O N S M A T H E M A T I Q U E S D E B A S E S O U S F O R M E " F O N C T I O N S " : */ /* */ /* */ /* Definition : */ /* */ /* Dans ce fichier se trouvent toutes */ /* les fonctions de base mathematiques, */ /* tel le produit scalaire, mais exprimees */ /* sous forme de fonctions et non pas */ /* de "defines". */ /* */ /* */ /* Author of '$ximf/operator.1$FON' : */ /* */ /* Jean-Francois Colonna (LACTAMME, 19870000000000). */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* P R O D U I T S C A L A I R E D E D E U X V E C T E U R S 2 D " E N T I E R S " : */ /* */ /*************************************************************************************************************************************/ BFonctionI DEFV(Common,DEFV(FonctionI,prsI2D(ARGUMENT_POINTERs(vectorA1),ARGUMENT_POINTERs(vectorA2)))) DEFV(Argument,DEFV(vectorI_2D,POINTERs(vectorA1))); DEFV(Argument,DEFV(vectorI_2D,POINTERs(vectorA2))); /* Vecteurs Arguments. */ /*-----------------------------------------------------------------------------------------------------------------------------------*/ Bblock /*..............................................................................................................................*/ RETU(ADD2(MUL2(SOUS(ASI2(vectorA1,extremite,x),ASI2(vectorA1,origine,x)) ,SOUS(ASI2(vectorA2,extremite,x),ASI2(vectorA2,origine,x)) ) ,MUL2(SOUS(ASI2(vectorA1,extremite,y),ASI2(vectorA1,origine,y)) ,SOUS(ASI2(vectorA2,extremite,y),ASI2(vectorA2,origine,y)) ) ) ); Eblock EFonctionI _______________________________________________________________________________________________________________________________________ _______________________________________________________________________________________________________________________________________ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* P R O D U I T S C A L A I R E D E D E U X V E C T E U R S 2 D " F L O T T A N T S " : */ /* */ /*************************************************************************************************************************************/ BFonctionF DEFV(Common,DEFV(FonctionF,prsF2D(ARGUMENT_POINTERs(vectorA1),ARGUMENT_POINTERs(vectorA2)))) DEFV(Argument,DEFV(vectorF_2D,POINTERs(vectorA1))); DEFV(Argument,DEFV(vectorF_2D,POINTERs(vectorA2))); /* Vecteurs Arguments. */ /*-----------------------------------------------------------------------------------------------------------------------------------*/ Bblock /*..............................................................................................................................*/ RETU(ADD2(MUL2(SOUS(ASI2(vectorA1,extremite,x),ASI2(vectorA1,origine,x)) ,SOUS(ASI2(vectorA2,extremite,x),ASI2(vectorA2,origine,x)) ) ,MUL2(SOUS(ASI2(vectorA1,extremite,y),ASI2(vectorA1,origine,y)) ,SOUS(ASI2(vectorA2,extremite,y),ASI2(vectorA2,origine,y)) ) ) ); Eblock EFonctionF _______________________________________________________________________________________________________________________________________ _______________________________________________________________________________________________________________________________________ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* P R O D U I T S C A L A I R E D E D E U X V E C T E U R S 3 D " E N T I E R S " : */ /* */ /*************************************************************************************************************************************/ BFonctionI DEFV(Common,DEFV(FonctionI,prsI3D(ARGUMENT_POINTERs(vectorA1),ARGUMENT_POINTERs(vectorA2)))) DEFV(Argument,DEFV(vectorI_3D,POINTERs(vectorA1))); DEFV(Argument,DEFV(vectorI_3D,POINTERs(vectorA2))); /* Vecteurs Arguments. */ /*-----------------------------------------------------------------------------------------------------------------------------------*/ Bblock /*..............................................................................................................................*/ RETU(ADD3(MUL2(SOUS(ASI2(vectorA1,extremite,x),ASI2(vectorA1,origine,x)) ,SOUS(ASI2(vectorA2,extremite,x),ASI2(vectorA2,origine,x)) ) ,MUL2(SOUS(ASI2(vectorA1,extremite,y),ASI2(vectorA1,origine,y)) ,SOUS(ASI2(vectorA2,extremite,y),ASI2(vectorA2,origine,y)) ) ,MUL2(SOUS(ASI2(vectorA1,extremite,z),ASI2(vectorA1,origine,z)) ,SOUS(ASI2(vectorA2,extremite,z),ASI2(vectorA2,origine,z)) ) ) ); Eblock EFonctionI _______________________________________________________________________________________________________________________________________ _______________________________________________________________________________________________________________________________________ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* P R O D U I T S C A L A I R E D E D E U X V E C T E U R S 3 D " F L O T T A N T S " : */ /* */ /*************************************************************************************************************************************/ BFonctionF DEFV(Common,DEFV(FonctionF,prsF3D(ARGUMENT_POINTERs(vectorA1),ARGUMENT_POINTERs(vectorA2)))) DEFV(Argument,DEFV(vectorF_3D,POINTERs(vectorA1))); DEFV(Argument,DEFV(vectorF_3D,POINTERs(vectorA2))); /* Vecteurs Arguments. */ /*-----------------------------------------------------------------------------------------------------------------------------------*/ Bblock /*..............................................................................................................................*/ RETU(ADD3(MUL2(SOUS(ASI2(vectorA1,extremite,x),ASI2(vectorA1,origine,x)) ,SOUS(ASI2(vectorA2,extremite,x),ASI2(vectorA2,origine,x)) ) ,MUL2(SOUS(ASI2(vectorA1,extremite,y),ASI2(vectorA1,origine,y)) ,SOUS(ASI2(vectorA2,extremite,y),ASI2(vectorA2,origine,y)) ) ,MUL2(SOUS(ASI2(vectorA1,extremite,z),ASI2(vectorA1,origine,z)) ,SOUS(ASI2(vectorA2,extremite,z),ASI2(vectorA2,origine,z)) ) ) ); Eblock EFonctionF _______________________________________________________________________________________________________________________________________ _______________________________________________________________________________________________________________________________________ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* N O R M E D ' U N V E C T E U R 2 D " E N T I E R S " : */ /* */ /*************************************************************************************************************************************/ BFonctionI DEFV(Common,DEFV(FonctionI,normI2D(ARGUMENT_POINTERs(vectorA)))) DEFV(Argument,DEFV(vectorI_2D,POINTERs(vectorA))); /* Vecteur Argument. */ /*-----------------------------------------------------------------------------------------------------------------------------------*/ Bblock /*..............................................................................................................................*/ RETU(INTE(RACX(prsI2D(vectorA,vectorA)))); Eblock EFonctionI _______________________________________________________________________________________________________________________________________ _______________________________________________________________________________________________________________________________________ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* N O R M E D ' U N V E C T E U R 2 D " F L O T T A N T S " : */ /* */ /*************************************************************************************************************************************/ BFonctionF DEFV(Common,DEFV(FonctionF,normF2D(ARGUMENT_POINTERs(vectorA)))) DEFV(Argument,DEFV(vectorF_2D,POINTERs(vectorA))); /* Vecteur Argument. */ /*-----------------------------------------------------------------------------------------------------------------------------------*/ Bblock /*..............................................................................................................................*/ RETU(RACX(prsF2D(vectorA,vectorA))); Eblock EFonctionF _______________________________________________________________________________________________________________________________________ _______________________________________________________________________________________________________________________________________ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* N O R M E D ' U N V E C T E U R 3 D " E N T I E R S " : */ /* */ /*************************************************************************************************************************************/ BFonctionI DEFV(Common,DEFV(FonctionI,normI3D(ARGUMENT_POINTERs(vectorA)))) DEFV(Argument,DEFV(vectorI_3D,POINTERs(vectorA))); /* Vecteur Argument. */ /*-----------------------------------------------------------------------------------------------------------------------------------*/ Bblock /*..............................................................................................................................*/ RETU(INTE(RACX(prsI3D(vectorA,vectorA)))); Eblock EFonctionI _______________________________________________________________________________________________________________________________________ _______________________________________________________________________________________________________________________________________ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* N O R M E D ' U N V E C T E U R 3 D " F L O T T A N T S " : */ /* */ /*************************************************************************************************************************************/ BFonctionF DEFV(Common,DEFV(FonctionF,normF3D(ARGUMENT_POINTERs(vectorA)))) DEFV(Argument,DEFV(vectorF_3D,POINTERs(vectorA))); /* Vecteur Argument. */ /*-----------------------------------------------------------------------------------------------------------------------------------*/ Bblock /*..............................................................................................................................*/ RETU(RACX(prsF3D(vectorA,vectorA))); Eblock EFonctionF _______________________________________________________________________________________________________________________________________ _______________________________________________________________________________________________________________________________________ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* T H E O R E M E D E P Y T H A G O R E S U R U N V E C T E U R 2 D " E N T I E R " : */ /* */ /*************************************************************************************************************************************/ BFonctionI DEFV(Common,DEFV(FonctionI,pytI2D(ARGUMENT_POINTERs(delta)))) DEFV(Argument,DEFV(deltaI_2D,POINTERs(delta))); /* Vecteur translatable argument. */ /*-----------------------------------------------------------------------------------------------------------------------------------*/ Bblock /*..............................................................................................................................*/ RETU(ADD2(EXP2(ASI1(delta,dx)) ,EXP2(ASI1(delta,dy)) ) ); Eblock EFonctionI _______________________________________________________________________________________________________________________________________ _______________________________________________________________________________________________________________________________________ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* T H E O R E M E D E P Y T H A G O R E S U R U N V E C T E U R 2 D " F L O T T A N T " : */ /* */ /*************************************************************************************************************************************/ BFonctionF DEFV(Common,DEFV(FonctionF,pytF2D(ARGUMENT_POINTERs(delta)))) DEFV(Argument,DEFV(deltaF_2D,POINTERs(delta))); /* Vecteur translatable argument. */ /*-----------------------------------------------------------------------------------------------------------------------------------*/ Bblock /*..............................................................................................................................*/ RETU(ADD2(EXP2(ASI1(delta,dx)) ,EXP2(ASI1(delta,dy)) ) ); Eblock EFonctionF _______________________________________________________________________________________________________________________________________ _______________________________________________________________________________________________________________________________________ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* T H E O R E M E D E P Y T H A G O R E S U R U N V E C T E U R 3 D " E N T I E R " : */ /* */ /*************************************************************************************************************************************/ BFonctionI DEFV(Common,DEFV(FonctionI,pytI3D(ARGUMENT_POINTERs(delta)))) DEFV(Argument,DEFV(deltaI_3D,POINTERs(delta))); /* Vecteur translatable argument. */ /*-----------------------------------------------------------------------------------------------------------------------------------*/ Bblock /*..............................................................................................................................*/ RETU(ADD3(EXP2(ASI1(delta,dx)) ,EXP2(ASI1(delta,dy)) ,EXP2(ASI1(delta,dz)) ) ); Eblock EFonctionI _______________________________________________________________________________________________________________________________________ _______________________________________________________________________________________________________________________________________ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* T H E O R E M E D E P Y T H A G O R E S U R U N V E C T E U R 3 D " F L O T T A N T " : */ /* */ /*************************************************************************************************************************************/ BFonctionF DEFV(Common,DEFV(FonctionF,pytF3D(ARGUMENT_POINTERs(delta)))) DEFV(Argument,DEFV(deltaF_3D,POINTERs(delta))); /* Vecteur translatable argument. */ /*-----------------------------------------------------------------------------------------------------------------------------------*/ Bblock /*..............................................................................................................................*/ RETU(ADD3(EXP2(ASI1(delta,dx)) ,EXP2(ASI1(delta,dy)) ,EXP2(ASI1(delta,dz)) ) ); Eblock EFonctionF _______________________________________________________________________________________________________________________________________ _______________________________________________________________________________________________________________________________________ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* P R O D U I T D E D E U X D E P L A C E M E N T S 2 D " E N T I E R S " : */ /* */ /*************************************************************************************************************************************/ BFonctionI DEFV(Common,DEFV(FonctionI,prdI2D(ARGUMENT_POINTERs(deltaA1),ARGUMENT_POINTERs(deltaA2)))) DEFV(Argument,DEFV(deltaI_2D,POINTERs(deltaA1))); DEFV(Argument,DEFV(deltaI_2D,POINTERs(deltaA2))); /* Vecteurs Arguments. */ /*-----------------------------------------------------------------------------------------------------------------------------------*/ Bblock /*..............................................................................................................................*/ RETU(ADD2(MUL2(ASI1(deltaA1,dx),ASI1(deltaA2,dx)) ,MUL2(ASI1(deltaA1,dy),ASI1(deltaA2,dy)) ) ); Eblock EFonctionI _______________________________________________________________________________________________________________________________________ _______________________________________________________________________________________________________________________________________ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* P R O D U I T D E D E U X D E P L A C E M E N T S 2 D " F L O T T A N T S " : */ /* */ /*************************************************************************************************************************************/ BFonctionF DEFV(Common,DEFV(FonctionF,prdF2D(ARGUMENT_POINTERs(deltaA1),ARGUMENT_POINTERs(deltaA2)))) DEFV(Argument,DEFV(deltaF_2D,POINTERs(deltaA1))); DEFV(Argument,DEFV(deltaF_2D,POINTERs(deltaA2))); /* Vecteurs Arguments. */ /*-----------------------------------------------------------------------------------------------------------------------------------*/ Bblock /*..............................................................................................................................*/ RETU(ADD2(MUL2(ASI1(deltaA1,dx),ASI1(deltaA2,dx)) ,MUL2(ASI1(deltaA1,dy),ASI1(deltaA2,dy)) ) ); Eblock EFonctionF _______________________________________________________________________________________________________________________________________ _______________________________________________________________________________________________________________________________________ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* P R O D U I T D E D E U X D E P L A C E M E N T S 3 D " E N T I E R S " : */ /* */ /*************************************************************************************************************************************/ BFonctionI DEFV(Common,DEFV(FonctionI,prdI3D(ARGUMENT_POINTERs(deltaA1),ARGUMENT_POINTERs(deltaA2)))) DEFV(Argument,DEFV(deltaI_3D,POINTERs(deltaA1))); DEFV(Argument,DEFV(deltaI_3D,POINTERs(deltaA2))); /* Vecteurs Arguments. */ /*-----------------------------------------------------------------------------------------------------------------------------------*/ Bblock /*..............................................................................................................................*/ RETU(ADD3(MUL2(ASI1(deltaA1,dx),ASI1(deltaA2,dx)) ,MUL2(ASI1(deltaA1,dy),ASI1(deltaA2,dy)) ,MUL2(ASI1(deltaA1,dz),ASI1(deltaA2,dz)) ) ); Eblock EFonctionI _______________________________________________________________________________________________________________________________________ _______________________________________________________________________________________________________________________________________ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* P R O D U I T D E D E U X D E P L A C E M E N T S 3 D " F L O T T A N T S " : */ /* */ /*************************************************************************************************************************************/ BFonctionF DEFV(Common,DEFV(FonctionF,prdF3D(ARGUMENT_POINTERs(deltaA1),ARGUMENT_POINTERs(deltaA2)))) DEFV(Argument,DEFV(deltaF_3D,POINTERs(deltaA1))); DEFV(Argument,DEFV(deltaF_3D,POINTERs(deltaA2))); /* Vecteurs Arguments. */ /*-----------------------------------------------------------------------------------------------------------------------------------*/ Bblock /*..............................................................................................................................*/ RETU(ADD3(MUL2(ASI1(deltaA1,dx),ASI1(deltaA2,dx)) ,MUL2(ASI1(deltaA1,dy),ASI1(deltaA2,dy)) ,MUL2(ASI1(deltaA1,dz),ASI1(deltaA2,dz)) ) ); Eblock EFonctionF _______________________________________________________________________________________________________________________________________