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. 'DEBPROC' testeg nr1*'MOT' r1*'FLOTTANT' r2*'FLOTTANT' ;
  26. 'SI' debug ;
  27. chmes = 'CHAINE' nr1 ' = ' r1 ' vref=' r2 ;
  28. 'MESSAGE' chmes ;
  29. 'FINSI' ;
  30. tst = 'EGA' r1 r2 1.D-13 ;
  31. 'SI' ('NON' tst) ;
  32. cherr = 'CHAINE' '!!! Erreur, on aurait voulu ' nr1 ' = ' r2
  33. ' et non ' r1 ;
  34. 'MESSAGE' cherr ;
  35. 'FINSI' ;
  36. 'FINPROC' tst ;
  37. *
  38. *
  39. 'DEBPROC' testint nr1*'MOT' r1*'FLOTTANT' r2*'FLOTTANT' r3*'FLOTTANT' ;
  40. 'SI' debug ;
  41. chmes = 'CHAINE' nr1 ' = ' r1 ' intref=[' r2 ' , ' r3 ']' ;
  42. 'MESSAGE' chmes ;
  43. 'FINSI' ;
  44. tst = 'ET' ('>' r1 ('-' r2 1.D-13))
  45. ('<' r1 ('+' r3 1.D-13)) ;
  46. 'SI' ('NON' tst) ;
  47. cherr = 'CHAINE' '!!! Erreur, on aurait voulu ' nr1 ' = ' r1 ;
  48. cherr2 = 'CHAINE' ' compris entre ' r2 ' et ' r3 ;
  49. 'MESSAGE' cherr ;
  50. 'MESSAGE' cherr2 ;
  51. 'FINSI' ;
  52. 'FINPROC' tst ;
  53. *
  54. 'SAUTER' 2 'LIGNE' ;
  55. 'MESSAGE' ' Execution de ipol2.dgibi' ;
  56. 'SAUTER' 2 'LIGNE' ;
  57. *
  58. interact= FAUX ;
  59. debug = VRAI ;
  60. 'OPTION' 'DIME' 1 ;
  61. lok = VRAI ;
  62. r3 = '**' 3. 0.66 ;
  63. r3p = '**' 9. 0.33 ;
  64. *
  65. * Test 0 : fonction constante
  66. *
  67. l1 = 'PROG' r3 ;
  68. l2 = 'PROG' r3 ;
  69. iz = 'IPOL' 0. l1 l2 ; lok = lok 'ET' (testeg 'iz' iz r3) ;
  70. iy = 'IPOL' r3 l1 l2 ; lok = lok 'ET' (testeg 'iy' iy r3) ;
  71. ix = 'IPOL' 3. l1 l2 ; lok = lok 'ET' (testeg 'ix' ix r3) ;
  72. *
  73. * Test 1 : fonction de Heavyside
  74. *
  75. l1 = 'PROG' r3 r3 ;
  76. l2 = 'PROG' 0. 1. ;
  77. i1 = 'IPOL' 0. l1 l2 ; lok = lok 'ET' (testeg 'i1' i1 0.) ;
  78. i2 = 'IPOL' r3 l1 l2 ; lok = lok 'ET' (testint 'i2' i2 0. 1.) ;
  79. i3 = 'IPOL' r3p l1 l2 ; lok = lok 'ET' (testint 'i3' i3 0. 1.) ;
  80. i4 = 'IPOL' 3. l1 l2 ; lok = lok 'ET' (testeg 'i4' i4 1.) ;
  81. *
  82. * Test 2 : fonction de Heavyside étendue
  83. *
  84. l1 = 'PROG' 0. r3 r3 3. 3.1 ;
  85. l2 = 'PROG' 0. 0. 1. 1. 1. ;
  86. i5 = 'IPOL' -1. l1 l2 ; lok = lok 'ET' (testeg 'i5' i5 0.) ;
  87. i6 = 'IPOL' 0.5 l1 l2 ; lok = lok 'ET' (testeg 'i6' i6 0.) ;
  88. i7 = 'IPOL' r3 l1 l2 ; lok = lok 'ET' (testint 'i7' i7 0. 1.) ;
  89. i8 = 'IPOL' r3p l1 l2 ; lok = lok 'ET' (testint 'i8' i8 0. 1.) ;
  90. i9 = 'IPOL' 2.5 l1 l2 ; lok = lok 'ET' (testeg 'i9' i9 1.) ;
  91. ia = 'IPOL' 5. l1 l2 ; lok = lok 'ET' (testeg 'ia' ia 1.) ;
  92. *
  93. * Test 3 : fonction de Heavyside étendue décrite en ordre décroissant
  94. *
  95. l1 = 'PROG' 3.1 3. r3 r3 r3 r3 0. ;
  96. l2 = 'PROG' 1. 1. 1. 0.75 0.5 0. 0. ;
  97. ib = 'IPOL' -1. l1 l2 ; lok = lok 'ET' (testeg 'ib' ib 0.) ;
  98. ic = 'IPOL' 0.5 l1 l2 ; lok = lok 'ET' (testeg 'ic' ic 0.) ;
  99. id = 'IPOL' r3 l1 l2 ; lok = lok 'ET' (testint 'id' id 0. 1.) ;
  100. ie = 'IPOL' r3p l1 l2 ; lok = lok 'ET' (testint 'ie' ie 0. 1.) ;
  101. if = 'IPOL' 2.5 l1 l2 ; lok = lok 'ET' (testeg 'if' if 1.) ;
  102. ig = 'IPOL' 5. l1 l2 ; lok = lok 'ET' (testeg 'ig' ig 1.) ;
  103. *
  104. * Test 4 : fonction linéaire
  105. *
  106. a = PI ; b = '**' 3. 0.5 ;
  107. l1 = 'PROG' 0. 'PAS' 0.2 1000. ;
  108. l2 = '+' ('*' l1 a) ('PROG' ('DIME' l1) * b) ;
  109. x1 = -1. ; y1 = b ;
  110. x2 = r3 ; y2 = '+' ('*' x2 a) b ;
  111. ih = 'IPOL' x1 l1 l2 ; lok = lok 'ET' (testeg 'ih' ih y1) ;
  112. ii = 'IPOL' x2 l1 l2 ; lok = lok 'ET' (testeg 'ii' ii y2) ;
  113. *
  114. * Fin du jeu de donnees
  115. *
  116. 'SAUTER' 2 'LIGNE' ;
  117. 'SI' lok ;
  118. 'MESSAGE' 'Tout sest bien passe' ;
  119. 'SINON' ;
  120. 'MESSAGE' 'Il y a eu des erreurs' ;
  121. 'FINSI' ;
  122. 'SAUTER' 2 'LIGNE' ;
  123. 'SI' interact ;
  124. 'OPTION' 'DONN' 5 'ECHO' 1 ;
  125. 'FINSI' ;
  126. 'SI' ('NON' lok) ;
  127. 'ERREUR' 5 ;
  128. 'FINSI' ;
  129. *
  130. * End of dgibi file IPOL2
  131. *
  132. 'FIN' ;
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  

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