Télécharger ipol2.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : ipol2.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. 'OPTI' 'ECHO' 0 ;
  5. ************************************************************************
  6. * NOM : IPOL2
  7. * DESCRIPTION : Tester IPOL sur un réel.
  8. *
  9. *
  10. *
  11. * LANGAGE : GIBIANE-CAST3M
  12. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  13. * mél : gounand@semt2.smts.cea.fr
  14. **********************************************************************
  15. * VERSION : v1, 22/08/2007, version initiale
  16. * HISTORIQUE : v1, 22/08/2007, création
  17. * HISTORIQUE :
  18. * HISTORIQUE :
  19. ************************************************************************
  20. * Prière de PRENDRE LE TEMPS de compléter les commentaires
  21. * en cas de modification de ce sous-programme afin de faciliter
  22. * la maintenance !
  23. ************************************************************************
  24. *
  25. tol1 = ('VALE' 'PREC') '*' 10. ;
  26. *
  27. 'DEBPROC' testeg nr1*'MOT' r1*'FLOTTANT' r2*'FLOTTANT' ;
  28. 'SI' debug ;
  29. chmes = 'CHAINE' nr1 ' = ' r1 ' vref=' r2 ;
  30. 'MESSAGE' chmes ;
  31. 'FINSI' ;
  32. tst = 'EGA' r1 r2 tol1 ;
  33. 'SI' ('NON' tst) ;
  34. cherr = 'CHAINE' '!!! Erreur, on aurait voulu ' nr1 ' = ' r2
  35. ' et non ' r1 ;
  36. 'MESSAGE' cherr ;
  37. 'FINSI' ;
  38. 'FINPROC' tst ;
  39. *
  40. *
  41. 'DEBPROC' testint nr1*'MOT' r1*'FLOTTANT' r2*'FLOTTANT' r3*'FLOTTANT' ;
  42. 'SI' debug ;
  43. chmes = 'CHAINE' nr1 ' = ' r1 ' intref=[' r2 ' , ' r3 ']' ;
  44. 'MESSAGE' chmes ;
  45. 'FINSI' ;
  46. tst = 'ET' ('>' r1 ('-' r2 tol1))
  47. ('<' r1 ('+' r3 tol1)) ;
  48. 'SI' ('NON' tst) ;
  49. cherr = 'CHAINE' '!!! Erreur, on aurait voulu ' nr1 ' = ' r1 ;
  50. cherr2 = 'CHAINE' ' compris entre ' r2 ' et ' r3 ;
  51. 'MESSAGE' cherr ;
  52. 'MESSAGE' cherr2 ;
  53. 'FINSI' ;
  54. 'FINPROC' tst ;
  55. *
  56. 'SAUTER' 2 'LIGNE' ;
  57. 'MESSAGE' ' Execution de ipol2.dgibi' ;
  58. 'SAUTER' 2 'LIGNE' ;
  59. *
  60. interact= FAUX ;
  61. debug = VRAI ;
  62. 'OPTION' 'DIME' 1 ;
  63. lok = VRAI ;
  64. r3 = '**' 3. 0.66 ;
  65. r3p = '**' 9. 0.33 ;
  66. *
  67. * Test 0 : fonction constante
  68. *
  69. l1 = 'PROG' r3 ;
  70. l2 = 'PROG' r3 ;
  71. iz = 'IPOL' 0. l1 l2 ; lok = lok 'ET' (testeg 'iz' iz r3) ;
  72. iy = 'IPOL' r3 l1 l2 ; lok = lok 'ET' (testeg 'iy' iy r3) ;
  73. ix = 'IPOL' 3. l1 l2 ; lok = lok 'ET' (testeg 'ix' ix r3) ;
  74. *
  75. * Test 1 : fonction de Heavyside
  76. *
  77. l1 = 'PROG' r3 r3 ;
  78. l2 = 'PROG' 0. 1. ;
  79. i1 = 'IPOL' 0. l1 l2 ; lok = lok 'ET' (testeg 'i1' i1 0.) ;
  80. i2 = 'IPOL' r3 l1 l2 ; lok = lok 'ET' (testint 'i2' i2 0. 1.) ;
  81. i3 = 'IPOL' r3p l1 l2 ; lok = lok 'ET' (testint 'i3' i3 0. 1.) ;
  82. i4 = 'IPOL' 3. l1 l2 ; lok = lok 'ET' (testeg 'i4' i4 1.) ;
  83. *
  84. * Test 2 : fonction de Heavyside étendue
  85. *
  86. l1 = 'PROG' 0. r3 r3 3. 3.1 ;
  87. l2 = 'PROG' 0. 0. 1. 1. 1. ;
  88. i5 = 'IPOL' -1. l1 l2 ; lok = lok 'ET' (testeg 'i5' i5 0.) ;
  89. i6 = 'IPOL' 0.5 l1 l2 ; lok = lok 'ET' (testeg 'i6' i6 0.) ;
  90. i7 = 'IPOL' r3 l1 l2 ; lok = lok 'ET' (testint 'i7' i7 0. 1.) ;
  91. i8 = 'IPOL' r3p l1 l2 ; lok = lok 'ET' (testint 'i8' i8 0. 1.) ;
  92. i9 = 'IPOL' 2.5 l1 l2 ; lok = lok 'ET' (testeg 'i9' i9 1.) ;
  93. ia = 'IPOL' 5. l1 l2 ; lok = lok 'ET' (testeg 'ia' ia 1.) ;
  94. *
  95. * Test 3 : fonction de Heavyside étendue décrite en ordre décroissant
  96. *
  97. l1 = 'PROG' 3.1 3. r3 r3 r3 r3 0. ;
  98. l2 = 'PROG' 1. 1. 1. 0.75 0.5 0. 0. ;
  99. ib = 'IPOL' -1. l1 l2 ; lok = lok 'ET' (testeg 'ib' ib 0.) ;
  100. ic = 'IPOL' 0.5 l1 l2 ; lok = lok 'ET' (testeg 'ic' ic 0.) ;
  101. id = 'IPOL' r3 l1 l2 ; lok = lok 'ET' (testint 'id' id 0. 1.) ;
  102. ie = 'IPOL' r3p l1 l2 ; lok = lok 'ET' (testint 'ie' ie 0. 1.) ;
  103. if = 'IPOL' 2.5 l1 l2 ; lok = lok 'ET' (testeg 'if' if 1.) ;
  104. ig = 'IPOL' 5. l1 l2 ; lok = lok 'ET' (testeg 'ig' ig 1.) ;
  105. *
  106. * Test 4 : fonction linéaire
  107. *
  108. a = PI ; b = '**' 3. 0.5 ;
  109. l1 = 'PROG' 0. 'PAS' 0.2 1000. ;
  110. l2 = '+' ('*' l1 a) ('PROG' ('DIME' l1) * b) ;
  111. x1 = -1. ; y1 = b ;
  112. x2 = r3 ; y2 = '+' ('*' x2 a) b ;
  113. ih = 'IPOL' x1 l1 l2 ; lok = lok 'ET' (testeg 'ih' ih y1) ;
  114. ii = 'IPOL' x2 l1 l2 ; lok = lok 'ET' (testeg 'ii' ii y2) ;
  115. *
  116. * Fin du jeu de donnees
  117. *
  118. 'SAUTER' 2 'LIGNE' ;
  119. 'SI' lok ;
  120. 'MESSAGE' 'Tout sest bien passe' ;
  121. 'SINON' ;
  122. 'MESSAGE' 'Il y a eu des erreurs' ;
  123. 'FINSI' ;
  124. 'SAUTER' 2 'LIGNE' ;
  125. 'SI' interact ;
  126. 'OPTION' 'DONN' 5 'ECHO' 1 ;
  127. 'FINSI' ;
  128. 'SI' ('NON' lok) ;
  129. 'ERREUR' 5 ;
  130. 'FINSI' ;
  131. *
  132. * End of dgibi file IPOL2
  133. *
  134. 'FIN' ;
  135.  
  136.  
  137.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales