* fichier : ipol2.dgibi
'OPTI' 'ECHO' 0 ;
************************************************************************
* NOM : IPOL2
* DESCRIPTION : Tester IPOL sur un réel.
*
*
*
* LANGAGE : GIBIANE-CAST3M
* AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
* mél : gounand@semt2.smts.cea.fr
**********************************************************************
* VERSION : v1, 22/08/2007, version initiale
* HISTORIQUE : v1, 22/08/2007, création
* HISTORIQUE :
* HISTORIQUE :
************************************************************************
* Prière de PRENDRE LE TEMPS de compléter les commentaires
* en cas de modification de ce sous-programme afin de faciliter
* la maintenance !
************************************************************************
*
'DEBPROC' testeg nr1*'MOT' r1*'FLOTTANT' r2*'FLOTTANT' ;
'SI' debug ;
chmes = 'CHAINE' nr1 ' = ' r1 ' vref=' r2 ;
'MESSAGE' chmes ;
'FINSI' ;
tst = 'EGA' r1 r2 1.D-13 ;
'SI' ('NON' tst) ;
cherr = 'CHAINE' '!!! Erreur, on aurait voulu ' nr1 ' = ' r2
' et non ' r1 ;
'MESSAGE' cherr ;
'FINSI' ;
'FINPROC' tst ;
*
*
'DEBPROC' testint nr1*'MOT' r1*'FLOTTANT' r2*'FLOTTANT' r3*'FLOTTANT' ;
'SI' debug ;
chmes = 'CHAINE' nr1 ' = ' r1 ' intref=[' r2 ' , ' r3 ']' ;
'MESSAGE' chmes ;
'FINSI' ;
tst = 'ET' ('>' r1 ('-' r2 1.D-13))
('<' r1 ('+' r3 1.D-13)) ;
'SI' ('NON' tst) ;
cherr = 'CHAINE' '!!! Erreur, on aurait voulu ' nr1 ' = ' r1 ;
cherr2 = 'CHAINE' ' compris entre ' r2 ' et ' r3 ;
'MESSAGE' cherr ;
'MESSAGE' cherr2 ;
'FINSI' ;
'FINPROC' tst ;
*
'SAUTER' 2 'LIGNE' ;
'MESSAGE' ' Execution de ipol2.dgibi' ;
'SAUTER' 2 'LIGNE' ;
*
interact= FAUX ;
debug = VRAI ;
'OPTION' 'DIME' 1 ;
lok = VRAI ;
r3 = '**' 3. 0.66 ;
r3p = '**' 9. 0.33 ;
*
* Test 0 : fonction constante
*
l1 = 'PROG' r3 ;
l2 = 'PROG' r3 ;
iz = 'IPOL' 0. l1 l2 ; lok = lok 'ET' (testeg 'iz' iz r3) ;
iy = 'IPOL' r3 l1 l2 ; lok = lok 'ET' (testeg 'iy' iy r3) ;
ix = 'IPOL' 3. l1 l2 ; lok = lok 'ET' (testeg 'ix' ix r3) ;
*
* Test 1 : fonction de Heavyside
*
l1 = 'PROG' r3 r3 ;
l2 = 'PROG' 0. 1. ;
i1 = 'IPOL' 0. l1 l2 ; lok = lok 'ET' (testeg 'i1' i1 0.) ;
i2 = 'IPOL' r3 l1 l2 ; lok = lok 'ET' (testint 'i2' i2 0. 1.) ;
i3 = 'IPOL' r3p l1 l2 ; lok = lok 'ET' (testint 'i3' i3 0. 1.) ;
i4 = 'IPOL' 3. l1 l2 ; lok = lok 'ET' (testeg 'i4' i4 1.) ;
*
* Test 2 : fonction de Heavyside étendue
*
l1 = 'PROG' 0. r3 r3 3. 3.1 ;
l2 = 'PROG' 0. 0. 1. 1. 1. ;
i5 = 'IPOL' -1. l1 l2 ; lok = lok 'ET' (testeg 'i5' i5 0.) ;
i6 = 'IPOL' 0.5 l1 l2 ; lok = lok 'ET' (testeg 'i6' i6 0.) ;
i7 = 'IPOL' r3 l1 l2 ; lok = lok 'ET' (testint 'i7' i7 0. 1.) ;
i8 = 'IPOL' r3p l1 l2 ; lok = lok 'ET' (testint 'i8' i8 0. 1.) ;
i9 = 'IPOL' 2.5 l1 l2 ; lok = lok 'ET' (testeg 'i9' i9 1.) ;
ia = 'IPOL' 5. l1 l2 ; lok = lok 'ET' (testeg 'ia' ia 1.) ;
*
* Test 3 : fonction de Heavyside étendue décrite en ordre décroissant
*
l1 = 'PROG' 3.1 3. r3 r3 r3 r3 0. ;
l2 = 'PROG' 1. 1. 1. 0.75 0.5 0. 0. ;
ib = 'IPOL' -1. l1 l2 ; lok = lok 'ET' (testeg 'ib' ib 0.) ;
ic = 'IPOL' 0.5 l1 l2 ; lok = lok 'ET' (testeg 'ic' ic 0.) ;
id = 'IPOL' r3 l1 l2 ; lok = lok 'ET' (testint 'id' id 0. 1.) ;
ie = 'IPOL' r3p l1 l2 ; lok = lok 'ET' (testint 'ie' ie 0. 1.) ;
if = 'IPOL' 2.5 l1 l2 ; lok = lok 'ET' (testeg 'if' if 1.) ;
ig = 'IPOL' 5. l1 l2 ; lok = lok 'ET' (testeg 'ig' ig 1.) ;
*
* Test 4 : fonction linéaire
*
a = PI ; b = '**' 3. 0.5 ;
l1 = 'PROG' 0. 'PAS' 0.2 1000. ;
l2 = '+' ('*' l1 a) ('PROG' ('DIME' l1) * b) ;
x1 = -1. ; y1 = b ;
x2 = r3 ; y2 = '+' ('*' x2 a) b ;
ih = 'IPOL' x1 l1 l2 ; lok = lok 'ET' (testeg 'ih' ih y1) ;
ii = 'IPOL' x2 l1 l2 ; lok = lok 'ET' (testeg 'ii' ii y2) ;
*
* Fin du jeu de donnees
*
'SAUTER' 2 'LIGNE' ;
'SI' lok ;
'MESSAGE' 'Tout sest bien passe' ;
'SINON' ;
'MESSAGE' 'Il y a eu des erreurs' ;
'FINSI' ;
'SAUTER' 2 'LIGNE' ;
'SI' interact ;
'OPTION' 'DONN' 5 'ECHO' 1 ;
'FINSI' ;
'SI' ('NON' lok) ;
'ERREUR' 5 ;
'FINSI' ;
*
* End of dgibi file IPOL2
*
'FIN' ;
© Cast3M 2003 - All rights reserved.
Disclaimer