/*************************************************************************************************************************************/ /* */ /* P R E M I E R E P A R T I E D E S D E F I N I T I O N S D U L A N G A G E ' K ' */ /* I N D E P E N D A N T E S D U L A N G A G E S O U R C E ( ' C ' ) : */ /* */ /* */ /* Definition : */ /* */ /* Dans ce fichier, se trouvent toutes les */ /* definitions relatives a la precision et */ /* qui sont independantes du langage source */ /* (le 'C'). */ /* */ /* */ /* Author of '$xil/defi_K1$vv$DEF' : */ /* */ /* Jean-Francois Colonna (LACTAMME, 19920000000000). */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* O P E R A T I O N S F O N D A M E N T A L E S D E S E L E C T I O N : */ /* */ /*************************************************************************************************************************************/ #define gSE11(x1) \ x1 #define SE11(x1) \ PARE(gSE11(x1)) /* En fait operations neutres... */ /* Le 20050822173929, a cause de l'usage 'v $xrs/Mobius2D.11$I NEUD', la definition */ /* anterieure de 'NEUT(...)' a ete deplacee vers '$xil/defi_c3$vv$DEF'... */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* D E F I N I T I O N S F O N D A M E N T A L E S : */ /* */ /*************************************************************************************************************************************/ #define ZERO \ 0 \ /* Zero... */ #define k___BIT \ 1 \ /* Bit... */ \ /* */ \ /* ATTENTION, on ne peut pas ecrire : */ \ /* */ \ /* #define k___BIT \ */ \ /* PARE(0x00000001) */ \ /* */ \ /* a cause des utilisations qui sont faites de 'BIT' dans des tests du pre-processeur, */ \ /* via d'autres symboles... */ \ /* */ \ /* ATTENTION : la constante 'BIT' est pre-generee dans '$xcp/Konstantes$K'. */ \ /* */ \ /* Jusqu'au 20071204085830, il y avait ici : */ \ /* */ \ /* #define k___BIT \ */ \ /* 0x00000001 */ \ /* */ \ /* mais d'une part cela fait une hypothese implicite (MACHINE 32 bits...) et d'autre part */ \ /* cela fait des constantes {'UN','I',...} tres incombrantes. J'y renonce donc a cette date. */ #TestADef BIT \ k___BIT #define UN \ BIT \ /* ATTENTION : on ne peut malheureusement definir 'UN' */ \ /* par SUCC(ZERO), car en effet la definition de la fonction */ \ /* 'SUCC' fait intervenir la constante 'I' qui vaut 'UN', d'ou une */ \ /* magnifique definition circulaire ; on le definit donc par la */ \ /* plus petite quantite d'information... */ #define I \ BIT \ /* Pour incrementer d'une unite. On notera la definition via 'BIT', et non via 'UN', a */ \ /* cause des tests du pre-processeur '#if...' qui utilisent des variables definies par '+I'. */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* D E F I N I T I O N D E L A ' S I M P L E - P R E C I S I O N ' */ /* E T D E L A ' D O U B L E - P R E C I S I O N ' : */ /* */ /*************************************************************************************************************************************/ #define SIMPLE_PRECISION \ (ZERO+I) \ /* Definition du mode de fonctionnement 'float' en simple precision (on utilise '+I' et */ \ /* non pas 'ADD2' a cause de l'utilisation qui en est faite dans des '#if'). On notera */ \ /* que cette definition est aussi utilisee lors de la definition du type 'Int'. */ #define DOUBLE_PRECISION \ (SIMPLE_PRECISION+I) \ /* Definition du mode de fonctionnement 'float' en double precision (on utilise '+I' et */ \ /* non pas 'ADD2' a cause de l'utilisation qui en est faite dans des '#if'). On notera */ \ /* que cette definition est aussi utilisee lors de la definition du type 'Int'. */ /* ATTENTION, avant le 1995032700, on definissait 'PRECISION_DU_Int' dans le fichier */ /* '$xil/defi_c1$vv$DEF'. Or malheureusement dans '$xcc/cpp$Z', lors de la '$PASSE_1' des */ /* fichiers demandant la derivation formelle d'ordre N (voir par exemple '$xtKg'), on */ /* fait : */ /* */ /* set choix_cK="$choix_cK ""-Dinclure_DEFINIT_K_DEF" */ /* */ /* ce qui provoque la non prise en compte des fichiers 'inclure_DEFINIT_c_DEF'. Or de plus */ /* dans '$xil/defi_K2$vv$DEF', il y a des instructions '$PASSE_1' conditionnelles qui */ /* utilisent 'PRECISION_DU_Int'. Donc si 'PRECISION_DU_Int' est defini dans un fichier */ /* de type 'inclure_DEFINIT_c_DEF', on aura le message : */ /* */ /* ...: undef symbol PRECISION_DU_Int in preprocessor if */ /* */ /* d'ou le transfert de la definition de 'PRECISION_DU_Int' dans '$xil/defi_K1$vv$DEF'... */ #if ( (! defined(SYSTEME_CRAY2_UNICOS)) \ && (! defined(SYSTEME_CRAYC98_UNICOS)) \ && (! defined(SYSTEME_CRAYC916_UNICOS)) \ && (! defined(SYSTEME_CRAYYMP1_UNICOS)) \ && (! defined(SYSTEME_CRAYYMP2_UNICOS)) \ && (! defined(SYSTEME_CRAYYMP4_UNICOS)) \ ) # if (SYSTEME_32_64_BITS==SYSTEME_32_BITS) # define PRECISION_DU_Int \ SIMPLE_PRECISION \ /* Definition du type entier sur les machines normales... */ \ /* */ \ /* On notera que jusqu'au 1995072400, date de la reinstallation du systeme sur '$LACT28', */ \ /* 'SYSTEME_SGIND?08_IRIX_CC', 'SYSTEME_SGIND?24_IRIX_CC' et 'SYSTEME_SGIND?GA_IRIX_CC' */ \ /* etaient definis ici en 'DOUBLE_PRECISION' en ce qui concerne 'PRECISION_DU_Int'. Ceci */ \ /* etait destine a definir automatiquement 'imageU' comme un tableau "entier non signe long" */ \ /* afin d'assurer la compatbilite de 'IGdisplay(...)' avec la fonction 'lrectwrite(...)' */ \ /* dans '$xiidG/fonction$FON'. Malheureusement, cela creait des fichiers "bootstrappables" */ \ /* (tels '$xbg/fonction$c') incompatibles avec la nouvelle version de '$LACT28'. Un nouveau */ \ /* type ('LPositive') a donc ete introduit pour compenser le retour de la definition de */ \ /* 'PRECISION_DU_Int' avec 'SIMPLE_PRECISION' pour ces SYSTEMEs... */ \ /* */ \ /* ATTENTION, il convient de modifier correlativement la definition de 'INTE(...)' qui est */ \ /* faite dans '$xil/defi_K2$vv$DEF'. */ # Aif (SYSTEME_32_64_BITS==SYSTEME_32_BITS) # if (SYSTEME_32_64_BITS==SYSTEME_64_BITS) # define PRECISION_DU_Int \ DOUBLE_PRECISION \ /* Introduit le 20100317125446 (un peu tardivement, suite a 'v $Fmachines 20091215105448'). */ \ /* */ \ /* Cela n'a pas ete aussi simple qu'il y parait. En effet, il a fallu introduire un nouveau */ \ /* type de fonction 'FonctionIB' (soit 'vrai_Int_de_base') pour 'print_defaut(...)' et pour */ \ /* 'BCommande(...)' par exemple. Puis sur '$CMAP28' (pour laquelle est faite cette extension */ \ /* afin de pouvoir faire de grosses allocations memoire (plus de 2Go pour les fractales */ \ /* utilisant la "fausse multiplication" ('v $ximcd/operator$FON 20091119084209')), */ \ /* il fallu compiler en premier tout '$xb', PUIS '$xcp/Konstantes$K' (et non pas avant */ \ /* comme c'est le cas habituellement) puisqu'en fait toutes les fonctions entieres de */ \ /* '$xbg' (par exemple 'FconversionL(...)') changeaient de type en passant de 'FonctionI' */ \ /* a 'FonctionIB'... */ \ /* */ \ /* Une difficulte est venue du fait que la constante 'NBITMO' est pre-generee dans la */ \ /* commande 'v $xcp/Konstantes$K NBITMO' or cette commande ne pouvait etre compilee */ \ /* qu'apres que '$xb' ait ete compilee (a cause de '$xbg/fonction$K' principalement) */ \ /* d'ou un probleme avec '$xiii/conversion$FON' qui reference 'NBITMO' via la constante */ \ /* 'BLANC_int'. Alors '$xbii/conversion$K' ne pouvait etre correct qu'apres recompilation */ \ /* de '$xcp/Konstantes$K'... */ \ /* */ \ /* Le 20100317171325, je reviens provisoirement a 'SIMPLE_PRECISION' a cause de problemes */ \ /* avec les operations sur bits (et les decalages), la generation des masques et des */ \ /* infinis. */ \ /* */ \ /* Le 20100318094738, je fais de nouvelles experiences avec 'DOUBLE_PRECISION' en notant */ \ /* qu'il est essentiel de detruire la variable 'v $Foptions PRE_GENERATION' ce qui permet */ \ /* a 'v $xcc/cpp$Z PRE_GENERATION' de ne pas utiliser les services de 'v $xcp/Konstantes$K' */ \ /* (cela se fait dans le fichier '$Doptimiseurs/.optimise1$Y'...) et ainsi de pouvoir */ \ /* compiler '$xbg/fonction$K' avec les definitions 64 bits. En consequence de quoi on */ \ /* fera dans l'ordre : */ \ /* */ \ /* unset PRE_GENERATION ($Doptimiseurs/.optimise1$Y) */ \ /* */ \ /* $xb/GENERE$Z $NEXIST */ \ /* */ \ /* xcp */ \ /* CL Konstantes */ \ /* */ \ /* et ensuite, il convient de revenir a une situation normale, par exemple avec 'OPTIMISE' */ \ /* pour repositionner 'PRE_GENERATION' et faire donc : */ \ /* */ \ /* OPTIMISE */ \ /* */ \ /* $xb/GENERE$Z $NEXIST */ \ /* */ \ /* et tout devrait etre bon... */ # Aif (SYSTEME_32_64_BITS==SYSTEME_64_BITS) # message "ATTENTION : la precision des entiers (32/64 bits) n'a pas ete definie." # Eif (SYSTEME_32_64_BITS==SYSTEME_64_BITS) # Eif (SYSTEME_32_64_BITS==SYSTEME_32_BITS) #Aif ( (! defined(SYSTEME_CRAY2_UNICOS)) \ && (! defined(SYSTEME_CRAYC98_UNICOS)) \ && (! defined(SYSTEME_CRAYC916_UNICOS)) \ && (! defined(SYSTEME_CRAYYMP1_UNICOS)) \ && (! defined(SYSTEME_CRAYYMP2_UNICOS)) \ && (! defined(SYSTEME_CRAYYMP4_UNICOS)) \ ) # define PRECISION_DU_Int \ DOUBLE_PRECISION \ /* Version CRAY2/UNICOS, */ \ /* version CRAYC98/UNICOS, */ \ /* version CRAYC916/UNICOS, */ \ /* version CRAYYMP1/UNICOS, */ \ /* version CRAYYMP2/UNICOS, */ \ /* version CRAYYMP4/UNICOS. */ \ /* */ \ /* On notera que jusqu'au 1995072400, date de la reinstallation du systeme sur '$LACT28', */ \ /* 'SYSTEME_SGIND?08_IRIX_CC', 'SYSTEME_SGIND?24_IRIX_CC' et 'SYSTEME_SGIND?GA_IRIX_CC' */ \ /* etaient definis ici en 'DOUBLE_PRECISION' en ce qui concerne 'PRECISION_DU_Int'. Ceci */ \ /* etait destine a definir automatiquement 'imageU' comme un tableau "entier non signe long" */ \ /* afin d'assurer la compatbilite de 'IGdisplay(...)' avec la fonction 'lrectwrite(...)' */ \ /* dans '$xiidG/fonction$FON'. Malheureusement, cela creait des fichiers "bootstrappables" */ \ /* (tels '$xbg/fonction$c') incompatibles avec la nouvelle version de '$LACT28'. Un nouveau */ \ /* type ('LPositive') a donc ete introduit pour compenser le retour de la definition de */ \ /* 'PRECISION_DU_Int' avec 'SIMPLE_PRECISION' pour ces SYSTEMEs... */ \ /* */ \ /* ATTENTION, il convient de modifier correlativement la definition de 'INTE(...)' qui est */ \ /* faite dans '$xil/defi_K2$vv$DEF'. */ #Eif ( (! defined(SYSTEME_CRAY2_UNICOS)) \ && (! defined(SYSTEME_CRAYC98_UNICOS)) \ && (! defined(SYSTEME_CRAYC916_UNICOS)) \ && (! defined(SYSTEME_CRAYYMP1_UNICOS)) \ && (! defined(SYSTEME_CRAYYMP2_UNICOS)) \ && (! defined(SYSTEME_CRAYYMP4_UNICOS)) \ ) #if ( (defined(SYSTEME_CRAY2_UNICOS)) \ || (defined(SYSTEME_CRAYC98_UNICOS)) \ || (defined(SYSTEME_CRAYC916_UNICOS)) \ || (defined(SYSTEME_CRAYYMP1_UNICOS)) \ || (defined(SYSTEME_CRAYYMP2_UNICOS)) \ || (defined(SYSTEME_CRAYYMP4_UNICOS)) \ ) # define PRECISION_DU_Float \ SIMPLE_PRECISION \ /* Version CRAY2/UNICOS, */ \ /* version CRAYC98/UNICOS, */ \ /* version CRAYC916/UNICOS, */ \ /* version CRAYYMP1/UNICOS, */ \ /* version CRAYYMP2/UNICOS, */ \ /* version CRAYYMP4/UNICOS. */ #Aif ( (defined(SYSTEME_CRAY2_UNICOS)) \ || (defined(SYSTEME_CRAYC98_UNICOS)) \ || (defined(SYSTEME_CRAYC916_UNICOS)) \ || (defined(SYSTEME_CRAYYMP1_UNICOS)) \ || (defined(SYSTEME_CRAYYMP2_UNICOS)) \ || (defined(SYSTEME_CRAYYMP4_UNICOS)) \ ) # define PRECISION_DU_Float \ DOUBLE_PRECISION \ /* Valeur par defaut... */ #Eif ( (defined(SYSTEME_CRAY2_UNICOS)) \ || (defined(SYSTEME_CRAYC98_UNICOS)) \ || (defined(SYSTEME_CRAYC916_UNICOS)) \ || (defined(SYSTEME_CRAYYMP1_UNICOS)) \ || (defined(SYSTEME_CRAYYMP2_UNICOS)) \ || (defined(SYSTEME_CRAYYMP4_UNICOS)) \ ) /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* N U M E R O D E L A V E R S I O N D E ' D E F V ' E T D E ' C A S T ' : */ /* */ /*************************************************************************************************************************************/ /* ATTENTION : les 'VERSION_01' et 'VERSION_02' n'ont plus d'interet, mais les definitions */ /* qui suivent sont conservees uniquement pour des raisons de compatibilite... */ #nodefine DEFV_CAST_VERSION_01 \ /* ATTENTION : la 'VERSION_01' ne permet pas d'utiliser 'DEFV' et 'CAST' en tant que */ \ /* fonction avec des arguments, c'est-a-dire : DEFV et CAST... */ #nodefine DEFV_CAST_VERSION_02 \ /* La 'VERSION_02' quant a elle, permet de les utiliser comme des fonctions, c'est-a-dire */ \ /* sous la forme DEFV(...) et CAST(...). */ #define DEFV_CAST_VERSION_03 \ /* La 'VERSION_03' quant a elle, permet de les utiliser comme des fonctions, c'est-a-dire */ \ /* sous la forme DEFV(...) et CAST(...), et plus generales que la 'VERSION_02'... */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* " P S E U D O - C O N C A T E N A T I O N " D E " S O U S - T Y P E S " : */ /* */ /*************************************************************************************************************************************/ #ifdef DEFV_CAST_VERSION_01 # message "La version 'DEFV_CAST_VERSION_01' n'est plus disponible." #Aifdef DEFV_CAST_VERSION_01 #Eifdef DEFV_CAST_VERSION_01 #ifdef DEFV_CAST_VERSION_02 # message "La version 'DEFV_CAST_VERSION_02' n'est plus disponible." #Aifdef DEFV_CAST_VERSION_02 #Eifdef DEFV_CAST_VERSION_02 #ifdef DEFV_CAST_VERSION_03 # define CONC(type1,type2) \ type1(type2 \ /* Permet de concatener par exemple deux "sous-types" (par exemple 'int' et 'short')... */ #Aifdef DEFV_CAST_VERSION_03 #Eifdef DEFV_CAST_VERSION_03 /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* D E F I N I T I O N D ' U N E V A R I A B L E D E T Y P E Q U E L C O N Q U E : */ /* */ /*************************************************************************************************************************************/ #ifdef DEFV_CAST_VERSION_01 # message "La version 'DEFV_CAST_VERSION_01' n'est plus disponible." #Aifdef DEFV_CAST_VERSION_01 #Eifdef DEFV_CAST_VERSION_01 #ifdef DEFV_CAST_VERSION_02 # message "La version 'DEFV_CAST_VERSION_02' n'est plus disponible." #Aifdef DEFV_CAST_VERSION_02 #Eifdef DEFV_CAST_VERSION_02 #ifdef DEFV_CAST_VERSION_03 # define DEFV(type,variable) \ type(variable) \ /* Permet de definir une variable, avec son initialisation (par 'INIT') si celle-ci */ \ /* est fournie en argument... */ #Aifdef DEFV_CAST_VERSION_03 #Eifdef DEFV_CAST_VERSION_03 /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* D E F I N I T I O N D U M O D E D E G E S T I O N D E S F O R M A T S D ' I M A G E S : */ /* */ /* */ /* ATTENTION : */ /* */ /* Lors du passage de la 'VERSION_01' a */ /* a la 'VERSION_02' on fera tres attention */ /* au programme '$xcp/Konstantes$K' d'optimisation */ /* des constantes "complexes" : en effet, il faut */ /* avant toute autre compilation, le recompiler */ /* lui-meme sous 'VERSION_02' afin qu'il ne definisse */ /* pas ces memes constantes (telle 'dimX',...). */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* "debut_pour_cpp_z" (debut du choix par '$xcc/cpp$Z' de 'GESTION_DU_FORMAT_DES_IMAGES_VERSION_0X') */ /* */ /*************************************************************************************************************************************/ #nodefine GESTION_DU_FORMAT_DES_IMAGES_VERSION_01 \ /* Cette facon de gerer le format des images est statique : les dimensions 'dimX', 'dimY' */ \ /* et 'dimZ' sont fixees a la compilation... */ #if ( (defined(LACT28)) \ ) /* ATTENTION, le 19970227180746, '$LACT29' a ete supprimee de cette liste ; en effet, la */ /* gestion 'GESTION_DU_FORMAT_DES_IMAGES_VERSION_03' demande beaucoup plus de memoire et */ /* limite la taille maximale des images. Or les gains en temps qu'elle apporte sont faibles */ /* ('v $xt/$Fnota'), d'ou son retour en 'GESTION_DU_FORMAT_DES_IMAGES_VERSION_02'... */ /* */ /* On notera que '$LACT28' reste en mode 'GESTION_DU_FORMAT_DES_IMAGES_VERSION_03' afin */ /* de pouvoir tester ce mode... */ # nodefine GESTION_DU_FORMAT_DES_IMAGES_VERSION_02 \ /* Cette facon de gerer le format des images est dynamique : les dimensions 'dimX', 'dimY' */ \ /* et 'dimZ' peuvent etre modifiees a l'execution, l'allocation memoire etant dynamique. */ # define GESTION_DU_FORMAT_DES_IMAGES_VERSION_03 \ /* Cette facon de gerer le format des images est dynamique : les dimensions 'dimX', 'dimY' */ \ /* et 'dimZ' peuvent etre modifiees a l'execution, l'allocation memoire etant statique. */ \ /* Cette methode a ete introduite le 19970218090000, suite a des tests effectues sur */ \ /* '$LACT29' ('v $Dbugs/SGO200A1$D/IRIX$D/CC$D/performan.02$c' ou l'on voit que l'acces a un */ \ /* tableau 'T' est 10 fois plus rapide s'il est accede par : */ \ /* */ \ /* T[index] */ \ /* */ \ /* que par : */ \ /* */ \ /* (*T)+index */ \ /* */ #Aif ( (defined(LACT28)) \ ) # define GESTION_DU_FORMAT_DES_IMAGES_VERSION_02 \ /* Cette facon de gerer le format des images est dynamique : les dimensions 'dimX', 'dimY' */ \ /* et 'dimZ' peuvent etre modifiees a l'execution, l'allocation memoire etant dynamique. */ # nodefine GESTION_DU_FORMAT_DES_IMAGES_VERSION_03 \ /* Cette facon de gerer le format des images est dynamique : les dimensions 'dimX', 'dimY' */ \ /* et 'dimZ' peuvent etre modifiees a l'execution, l'allocation memoire etant statique. */ \ /* Cette methode a ete introduite le 19970218090000, suite a des tests effectues sur */ \ /* '$LACT29' ('v $Dbugs/SGO200A1$D/IRIX$D/CC$D/performan.02$c' ou l'on voit que l'acces a un */ \ /* tableau 'T' est 10 fois plus rapide s'il est accede par : */ \ /* */ \ /* T[index] */ \ /* */ \ /* que par : */ \ /* */ \ /* (*T)+index */ \ /* */ #Eif ( (defined(LACT28)) \ ) /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* "fin_pour_cpp_z" (fin du choix par '$xcc/cpp$Z' de 'GESTION_DU_FORMAT_DES_IMAGES_VERSION_0X') */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* D E F I N I T I O N D E L ' E X I S T E N C E D ' I M A G E S " S T A T I Q U E S " : */ /* */ /*************************************************************************************************************************************/ #if ( (defined(GESTION_DU_FORMAT_DES_IMAGES_VERSION_01)) \ ) #Aif ( (defined(GESTION_DU_FORMAT_DES_IMAGES_VERSION_01)) \ ) #Eif ( (defined(GESTION_DU_FORMAT_DES_IMAGES_VERSION_01)) \ ) #if ( (defined(GESTION_DU_FORMAT_DES_IMAGES_VERSION_02)) \ ) /* On notera que ces definitions sont faites ici et non pas dans '$xiii/Images$DEF' a cause */ /* de '$xig/fonct$vv$DEF'... */ # nodefine GESTION_DES_IMAGES_STATIQUES_VERSION_01 \ /* Cette version admet l'existence d'images statiques dont la taille est bloquee au maximum */ \ /* possible, soit 'K___dimX', 'K___dimY' et 'K___dimZ'. */ # define GESTION_DES_IMAGES_STATIQUES_VERSION_02 \ /* Cette version n'admet plus l'existence d'images statiques ; elle les transforme en images */ \ /* dynamiques apres ques les dimensions reelles aient ete definies. Cela est fait dans la */ \ /* procedure 'GET_ARGUMENTSi(...)', ce qui implique donc maintenant son emploi generalise */ \ /* dans tous les programmes calculant des images... */ /* On notera que ces definitions sont faites ici et non pas dans '$xiii/Images$DEF' a cause */ /* de '$xig/fonct$vv$DEF'... */ #Aif ( (defined(GESTION_DU_FORMAT_DES_IMAGES_VERSION_02)) \ ) #Eif ( (defined(GESTION_DU_FORMAT_DES_IMAGES_VERSION_02)) \ ) #if ( (defined(GESTION_DU_FORMAT_DES_IMAGES_VERSION_03)) \ ) # define GESTION_DES_IMAGES_STATIQUES_VERSION_01 \ /* Cette version admet l'existence d'images statiques dont la taille est bloquee au maximum */ \ /* possible, soit 'K___dimX', 'K___dimY' et 'K___dimZ'. */ #Aif ( (defined(GESTION_DU_FORMAT_DES_IMAGES_VERSION_03)) \ ) #Eif ( (defined(GESTION_DU_FORMAT_DES_IMAGES_VERSION_03)) \ )