definti.red 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235
  1. module definti;
  2. % A rule set to test for the validity of the seven cases for the
  3. % integration of a single Meijer G-function.
  4. %
  5. % 'The Special Functions and their Approximations', Volume 1,
  6. % Y.L.Luke. Chapter 5.6 pages 158 & 159
  7. algebraic <<
  8. operator test_cases,case_1,case_2,case_3,case_4,case_5,case_6,case_7;
  9. test_cases_rules :=
  10. {test_cases(~m,~n,~p,~q,~delta,~xi,~eta,~test_1,~test_1a,~test_2) => 't
  11. when case_1(m,n,p,q,delta,xi,eta,test_1,test_1a,test_2) = 't
  12. or case_2(m,n,p,q,delta,xi,eta,test_1,test_1a,test_2) = 't
  13. or case_3(m,n,p,q,delta,xi,eta,test_1,test_1a,test_2) = 't
  14. or case_4(m,n,p,q,delta,xi,eta,test_1,test_1a,test_2) = 't
  15. or case_5(m,n,p,q,delta,xi,eta,test_1,test_1a,test_2) = 't
  16. or case_6(m,n,p,q,delta,xi,eta,test_1,test_1a,test_2) = 't
  17. or case_7(m,n,p,q,delta,xi,eta,test_1,test_1a,test_2) = 't
  18. };
  19. let test_cases_rules;
  20. case_1_rules :=
  21. { case_1(~m,~n,~p,~q,~delta,~xi,~eta,~test_1,~test_1a,~test_2) => 't
  22. when 1 <= n and n <= p and p < q
  23. and 1 <= m and m <= q
  24. and delta > 0 and eta neq 0
  25. and mylessp(abs(atan(impart eta/repart eta)),delta) = 't
  26. and test_1 = 't
  27. and transform_test2('tst1,nil) = 't
  28. or p >= 1 and 0 <= n and n <= p
  29. and 1 <= m and m <= q and q = p + 1
  30. and not (n = 0 and m = p + 1)
  31. and delta >0 and eta neq 0
  32. and mylessp(abs(atan(impart eta/repart eta)),delta) = 't
  33. and test_1 = 't
  34. and transform_test2('tst1,nil) = 't
  35. or p >= 1 and 0 <= n and n <= p
  36. and 0 <= m and m <= q and q = p
  37. and delta > 0 and eta neq 0
  38. and mylessp(abs(atan(impart eta/repart eta)),delta) = 't
  39. and not (arg_test1(abs(atan(impart eta/repart eta)),delta) = 't)
  40. and test_1 = 't
  41. and transform_test2('tst1,nil) = 't
  42. };
  43. let case_1_rules;
  44. case_2_rules :=
  45. { case_2(~m,~n,~p,~q,~delta,~xi,~eta,~test_1,~test_1a,~test_2) => 't
  46. when n = 0 and 1 <= p + 1 and p + 1 <= m and m <= q
  47. and delta > 0
  48. and mylessp(abs(atan(impart eta/repart eta)),delta) = 't
  49. and test_1 = 't
  50. and transform_test2('tst1,nil) = 't
  51. };
  52. let case_2_rules;
  53. case_3_rules :=
  54. { case_3(~m,~n,~p,~q,~delta,~xi,~eta,~test_1,~test_1a,~test_2) => 't
  55. when 0 <= n and n <= p and p < q
  56. and 1 <= m and m <= q
  57. and delta > 0
  58. and arg_test2(abs(atan(impart eta/repart eta)),delta) = 't
  59. and test_1 = 't and test_2 = 't
  60. and transform_test2('tst1,'tst2) = 't
  61. or 0 <= n and n <= p and p <= q - 2
  62. and delta = 0
  63. and arg_test3a(atan(impart eta/repart eta),0) = 't
  64. and test_1 = 't and test_2 = 't
  65. and transform_test2('tst1,'tst2) = 't
  66. };
  67. let case_3_rules;
  68. case_4_rules :=
  69. { case_4(~m,~n,~p,~q,~delta,~xi,~eta,~test_1,~test_1a,~test_2) => 't
  70. when 0 <= n and n <= p
  71. and 1 <= m and m <= q and q = p + 2
  72. and eta neq 0
  73. and delta <= 0
  74. and arg_test(atan(impart eta/repart eta),delta) = 't
  75. and test_1a = 't and test_2 = 't
  76. and transform_test2('tst1,'tst2) = 't
  77. or 0 <= n and n <= p
  78. and 1 <= m and m <= q and q = p + 2
  79. and eta neq 0
  80. and delta >= 1
  81. and arg_test3(atan(impart eta/repart eta),delta) = 't
  82. and test_1a = 't and test_2 = 't
  83. and transform_test2('tst1,'tst2) = 't
  84. or test_1 = 't and test_2 = 't
  85. and 0 <= n and n <= p
  86. and 1 <= m and m <= q and q = p + 2
  87. and eta neq 0
  88. and delta >= 0
  89. and arg_test3a(atan(impart eta/repart eta),delta) = 't
  90. and test_1 = 't and test_2 = 't
  91. and transform_test2('tst1,'tst2) = 't
  92. };
  93. let case_4_rules;
  94. case_5_rules :=
  95. { case_5(~m,~n,~p,~q,~delta,~xi,~eta,~test_1,~test_1a,~test_2) => 't
  96. when p >= 1
  97. and 0 <= n and n <= p
  98. and 1 <= m and m <= q and q = p + 1
  99. and eta neq 0
  100. and arg_test4(atan(impart eta/repart eta),delta) = 't
  101. and test_1a = 't
  102. and transform_test2('tst1,nil) = 't
  103. or p >= 1
  104. and 0 <= n and n <= p
  105. and 1 <= m and m <= q and q = p + 1
  106. and eta neq 0
  107. and xi >= 2
  108. and arg_test5(atan(impart eta/repart eta),delta,xi) = 't
  109. and test_1a = 't
  110. and transform_test2('tst1,nil) = 't
  111. or p >= 1
  112. and 0 <= n and n <= p
  113. and 1 <= m and m <= q and q = p + 1
  114. and eta neq 0
  115. and xi >= 2
  116. and arg_test6(atan(impart eta/repart eta),delta,xi) = 't
  117. and test_1a = 't
  118. and transform_test2('tst1,nil) = 't
  119. or p >= 1
  120. and 1 <= n and n <= p
  121. and 1 <= m and m <= q and q = p + 1
  122. and eta neq 0
  123. and xi >= 1
  124. and arg_test6a(atan(impart eta/repart eta),delta,xi) = 't
  125. and test_1 = 't
  126. and transform_test2('tst1,nil) = 't
  127. };
  128. let case_5_rules;
  129. case_6_rules :=
  130. { case_6(~m,~n,~p,~q,~delta,~xi,~eta,~test_1,~test_1a,~test_2) => 't
  131. when p >= 1
  132. and 0 <= n and n <= p
  133. and 1 <= m and m <= q and q = p + 1
  134. and eta neq 0
  135. and xi <= 1
  136. and arg_test(atan(impart eta/repart eta),delta) = 't
  137. and test_1a = 't and test_2 = 't
  138. and transform_test2('tst1,'tst2) = 't
  139. or p >= 1
  140. and 0 <= n and n <= p
  141. and 1 <= m and m <= q and q = p + 1
  142. and eta neq 0
  143. and xi >= 2
  144. and arg_test7(atan(impart eta/repart eta),delta,xi) = 't
  145. and test_1a = 't and test_2 = 't
  146. and transform_test2('tst1,'tst2) = 't
  147. or p >= 1
  148. and 0 <= n and n <= p
  149. and 1 <= m and m <= q and q = p + 1
  150. and eta neq 0
  151. and xi <= 1
  152. and arg_test8(atan(impart eta/repart eta),delta) = 't
  153. and test_1a = 't and test_2 = 't
  154. and transform_test2('tst1,'tst2) = 't
  155. or p >= 1
  156. and 0 <= n and n <= p
  157. and 1 <= m and m <= q and q = p + 1
  158. and eta neq 0
  159. and xi >= 2
  160. and arg_test8a(atan(impart eta/repart eta),delta,xi) = 't
  161. and test_1a = 't and test_2 = 't
  162. and transform_test2('tst1,'tst2) = 't
  163. };
  164. let case_6_rules;
  165. case_7_rules :=
  166. { case_7(~m,~n,~p,~q,~delta,~xi,~eta,~test_1,~test_1a,~test_2) => 't
  167. when p >= 1
  168. and 0 <= n and n <= p
  169. and 1 <= m and m <= q and q = p
  170. and eta neq 0
  171. and arg_test9(atan(impart eta/repart eta),delta) = 't
  172. and test_1a = 't
  173. and transform_test2('tst1,nil) = 't
  174. or p >= 1
  175. and 0 <= n and n <= p
  176. and 1 <= m and m <= q and q = p
  177. and eta neq 0
  178. and delta >= 1
  179. and arg_test9a(atan(impart eta/repart eta),delta) = 't
  180. and not (arg_test1(abs(atan(impart eta/repart eta)),delta) = 't)
  181. and test_1 = 't
  182. and transform_test2('tst1,nil) = 't
  183. };
  184. let case_7_rules;
  185. >>;
  186. endmodule;
  187. end;