123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235 |
- module definti;
- % A rule set to test for the validity of the seven cases for the
- % integration of a single Meijer G-function.
- %
- % 'The Special Functions and their Approximations', Volume 1,
- % Y.L.Luke. Chapter 5.6 pages 158 & 159
- algebraic <<
- operator test_cases,case_1,case_2,case_3,case_4,case_5,case_6,case_7;
- test_cases_rules :=
- {test_cases(~m,~n,~p,~q,~delta,~xi,~eta,~test_1,~test_1a,~test_2) => 't
- when case_1(m,n,p,q,delta,xi,eta,test_1,test_1a,test_2) = 't
- or case_2(m,n,p,q,delta,xi,eta,test_1,test_1a,test_2) = 't
- or case_3(m,n,p,q,delta,xi,eta,test_1,test_1a,test_2) = 't
- or case_4(m,n,p,q,delta,xi,eta,test_1,test_1a,test_2) = 't
- or case_5(m,n,p,q,delta,xi,eta,test_1,test_1a,test_2) = 't
- or case_6(m,n,p,q,delta,xi,eta,test_1,test_1a,test_2) = 't
- or case_7(m,n,p,q,delta,xi,eta,test_1,test_1a,test_2) = 't
- };
- let test_cases_rules;
- case_1_rules :=
- { case_1(~m,~n,~p,~q,~delta,~xi,~eta,~test_1,~test_1a,~test_2) => 't
- when 1 <= n and n <= p and p < q
- and 1 <= m and m <= q
- and delta > 0 and eta neq 0
- and mylessp(abs(atan(impart eta/repart eta)),delta) = 't
- and test_1 = 't
- and transform_test2('tst1,nil) = 't
- or p >= 1 and 0 <= n and n <= p
- and 1 <= m and m <= q and q = p + 1
- and not (n = 0 and m = p + 1)
- and delta >0 and eta neq 0
- and mylessp(abs(atan(impart eta/repart eta)),delta) = 't
- and test_1 = 't
- and transform_test2('tst1,nil) = 't
- or p >= 1 and 0 <= n and n <= p
- and 0 <= m and m <= q and q = p
- and delta > 0 and eta neq 0
- and mylessp(abs(atan(impart eta/repart eta)),delta) = 't
- and not (arg_test1(abs(atan(impart eta/repart eta)),delta) = 't)
- and test_1 = 't
- and transform_test2('tst1,nil) = 't
-
- };
- let case_1_rules;
- case_2_rules :=
- { case_2(~m,~n,~p,~q,~delta,~xi,~eta,~test_1,~test_1a,~test_2) => 't
- when n = 0 and 1 <= p + 1 and p + 1 <= m and m <= q
- and delta > 0
- and mylessp(abs(atan(impart eta/repart eta)),delta) = 't
- and test_1 = 't
- and transform_test2('tst1,nil) = 't
- };
- let case_2_rules;
- case_3_rules :=
- { case_3(~m,~n,~p,~q,~delta,~xi,~eta,~test_1,~test_1a,~test_2) => 't
- when 0 <= n and n <= p and p < q
- and 1 <= m and m <= q
- and delta > 0
- and arg_test2(abs(atan(impart eta/repart eta)),delta) = 't
- and test_1 = 't and test_2 = 't
- and transform_test2('tst1,'tst2) = 't
- or 0 <= n and n <= p and p <= q - 2
- and delta = 0
- and arg_test3a(atan(impart eta/repart eta),0) = 't
- and test_1 = 't and test_2 = 't
- and transform_test2('tst1,'tst2) = 't
- };
- let case_3_rules;
- case_4_rules :=
- { case_4(~m,~n,~p,~q,~delta,~xi,~eta,~test_1,~test_1a,~test_2) => 't
-
- when 0 <= n and n <= p
- and 1 <= m and m <= q and q = p + 2
- and eta neq 0
- and delta <= 0
- and arg_test(atan(impart eta/repart eta),delta) = 't
- and test_1a = 't and test_2 = 't
- and transform_test2('tst1,'tst2) = 't
-
- or 0 <= n and n <= p
- and 1 <= m and m <= q and q = p + 2
- and eta neq 0
- and delta >= 1
- and arg_test3(atan(impart eta/repart eta),delta) = 't
- and test_1a = 't and test_2 = 't
- and transform_test2('tst1,'tst2) = 't
- or test_1 = 't and test_2 = 't
- and 0 <= n and n <= p
- and 1 <= m and m <= q and q = p + 2
- and eta neq 0
- and delta >= 0
- and arg_test3a(atan(impart eta/repart eta),delta) = 't
- and test_1 = 't and test_2 = 't
- and transform_test2('tst1,'tst2) = 't
- };
- let case_4_rules;
- case_5_rules :=
- { case_5(~m,~n,~p,~q,~delta,~xi,~eta,~test_1,~test_1a,~test_2) => 't
- when p >= 1
- and 0 <= n and n <= p
- and 1 <= m and m <= q and q = p + 1
- and eta neq 0
- and arg_test4(atan(impart eta/repart eta),delta) = 't
- and test_1a = 't
- and transform_test2('tst1,nil) = 't
- or p >= 1
- and 0 <= n and n <= p
- and 1 <= m and m <= q and q = p + 1
- and eta neq 0
- and xi >= 2
- and arg_test5(atan(impart eta/repart eta),delta,xi) = 't
- and test_1a = 't
- and transform_test2('tst1,nil) = 't
- or p >= 1
- and 0 <= n and n <= p
- and 1 <= m and m <= q and q = p + 1
- and eta neq 0
- and xi >= 2
- and arg_test6(atan(impart eta/repart eta),delta,xi) = 't
- and test_1a = 't
- and transform_test2('tst1,nil) = 't
- or p >= 1
- and 1 <= n and n <= p
- and 1 <= m and m <= q and q = p + 1
- and eta neq 0
- and xi >= 1
- and arg_test6a(atan(impart eta/repart eta),delta,xi) = 't
- and test_1 = 't
- and transform_test2('tst1,nil) = 't
- };
- let case_5_rules;
- case_6_rules :=
- { case_6(~m,~n,~p,~q,~delta,~xi,~eta,~test_1,~test_1a,~test_2) => 't
- when p >= 1
- and 0 <= n and n <= p
- and 1 <= m and m <= q and q = p + 1
- and eta neq 0
- and xi <= 1
- and arg_test(atan(impart eta/repart eta),delta) = 't
- and test_1a = 't and test_2 = 't
- and transform_test2('tst1,'tst2) = 't
- or p >= 1
- and 0 <= n and n <= p
- and 1 <= m and m <= q and q = p + 1
- and eta neq 0
- and xi >= 2
- and arg_test7(atan(impart eta/repart eta),delta,xi) = 't
- and test_1a = 't and test_2 = 't
- and transform_test2('tst1,'tst2) = 't
- or p >= 1
- and 0 <= n and n <= p
- and 1 <= m and m <= q and q = p + 1
- and eta neq 0
- and xi <= 1
- and arg_test8(atan(impart eta/repart eta),delta) = 't
- and test_1a = 't and test_2 = 't
- and transform_test2('tst1,'tst2) = 't
- or p >= 1
- and 0 <= n and n <= p
- and 1 <= m and m <= q and q = p + 1
- and eta neq 0
- and xi >= 2
- and arg_test8a(atan(impart eta/repart eta),delta,xi) = 't
- and test_1a = 't and test_2 = 't
- and transform_test2('tst1,'tst2) = 't
- };
- let case_6_rules;
- case_7_rules :=
- { case_7(~m,~n,~p,~q,~delta,~xi,~eta,~test_1,~test_1a,~test_2) => 't
- when p >= 1
- and 0 <= n and n <= p
- and 1 <= m and m <= q and q = p
- and eta neq 0
- and arg_test9(atan(impart eta/repart eta),delta) = 't
- and test_1a = 't
- and transform_test2('tst1,nil) = 't
-
- or p >= 1
- and 0 <= n and n <= p
- and 1 <= m and m <= q and q = p
- and eta neq 0
- and delta >= 1
- and arg_test9a(atan(impart eta/repart eta),delta) = 't
- and not (arg_test1(abs(atan(impart eta/repart eta)),delta) = 't)
- and test_1 = 't
- and transform_test2('tst1,nil) = 't
- };
- let case_7_rules;
- >>;
- endmodule;
- end;
|