Changeset 177
- Timestamp:
- 01/03/08 15:30:15 (4 years ago)
- Files:
-
- trunk/backmath/backmath.d (modified) (1 diff)
- trunk/backmath/generated_rules.d (modified) (9 diffs)
- trunk/backmath/meta.lisp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/backmath/backmath.d
r176 r177 414 414 Z = (B * A) + (B / C); 415 415 Z = (B / A) + (B / C); 416 } 416 417 Z = B + (B*A + D); 418 Z = B + (B/A + D); 419 Z = B + (B*A - D); 420 Z = B + (B/A - D); 421 Z = B - (B*A + D); 422 Z = B - (B/A + D); 423 Z = B - (B*A - D); 424 Z = B - (B/A - D); 425 426 } trunk/backmath/generated_rules.d
r176 r177 325 325 alias OpDivA!(Value!(2), OpAddA!(OpDiv!(T.LHS, Value!(2)), T.RHS)) TypeOfAdd; 326 326 else 327 static if( /+ (+ C (/> A (-> B X))) -> (/> A (-> (+ (/ C A) B) X)) +/ 328 is(T.DefP == Defined) && 329 is(V.Op == DivA) && is(V.LHS.DefP == Defined) && is(V.RHS.Op == SubA) && is(V.RHS.LHS.DefP == Defined) && is(V.RHS.RHS.DefP == UnDefined) 330 /+ no repeats +/ 331 ) 332 alias OpDivA!(V.LHS, OpSubA!(OpAdd!(OpDiv!(T, V.LHS), V.RHS.LHS), V.RHS.RHS)) TypeOfAdd; 333 else 334 static if( /+ (+ X (/> F (-> E X))) -> (/> (+ 1 F) (-> (/ (* E F) (+ 1 F)) X)) +/ 335 is(T.DefP == UnDefined) && 336 is(V.Op == DivA) && is(V.LHS.DefP == Defined) && is(V.RHS.Op == SubA) && is(V.RHS.LHS.DefP == Defined) && is(V.RHS.RHS.DefP == UnDefined) 337 && is(T == V.RHS.RHS) 338 ) 339 alias OpDivA!(OpAdd!(Value!(1), V.LHS), OpSubA!(OpDiv!(OpMul!(V.RHS.LHS, V.LHS), OpAdd!(Value!(1), V.LHS)), T)) TypeOfAdd; 340 else 341 static if( /+ (+ C (/> A (+> B X))) -> (/> A (+> (- B (/ C A)) X)) +/ 342 is(T.DefP == Defined) && 343 is(V.Op == DivA) && is(V.LHS.DefP == Defined) && is(V.RHS.Op == AddA) && is(V.RHS.LHS.DefP == Defined) && is(V.RHS.RHS.DefP == UnDefined) 344 /+ no repeats +/ 345 ) 346 alias OpDivA!(V.LHS, OpAddA!(OpSub!(V.RHS.LHS, OpDiv!(T, V.LHS)), V.RHS.RHS)) TypeOfAdd; 347 else 348 static if( /+ (+ X (/> F (+> E X))) -> (/> (+ 1 F) (+> (/ (* E F) (+ 1 F)) X)) +/ 349 is(T.DefP == UnDefined) && 350 is(V.Op == DivA) && is(V.LHS.DefP == Defined) && is(V.RHS.Op == AddA) && is(V.RHS.LHS.DefP == Defined) && is(V.RHS.RHS.DefP == UnDefined) 351 && is(T == V.RHS.RHS) 352 ) 353 alias OpDivA!(OpAdd!(Value!(1), V.LHS), OpAddA!(OpDiv!(OpMul!(V.RHS.LHS, V.LHS), OpAdd!(Value!(1), V.LHS)), T)) TypeOfAdd; 354 else 355 static if( /+ (+ C (*> A (-> B X))) -> (*> A (-> (+ (* C A) B) X)) +/ 356 is(T.DefP == Defined) && 357 is(V.Op == MulA) && is(V.LHS.DefP == Defined) && is(V.RHS.Op == SubA) && is(V.RHS.LHS.DefP == Defined) && is(V.RHS.RHS.DefP == UnDefined) 358 /+ no repeats +/ 359 ) 360 alias OpMulA!(V.LHS, OpSubA!(OpAdd!(OpMul!(T, V.LHS), V.RHS.LHS), V.RHS.RHS)) TypeOfAdd; 361 else 362 static if( /+ (+ X (*> F (-> E X))) -> (/> (+ 1 (/ 1 F)) (-> (/ (/ E F) (+ 1 (/ 1 F))) X)) +/ 363 is(T.DefP == UnDefined) && 364 is(V.Op == MulA) && is(V.LHS.DefP == Defined) && is(V.RHS.Op == SubA) && is(V.RHS.LHS.DefP == Defined) && is(V.RHS.RHS.DefP == UnDefined) 365 && is(T == V.RHS.RHS) 366 ) 367 alias OpDivA!(OpAdd!(Value!(1), OpDiv!(Value!(1), V.LHS)), OpSubA!(OpDiv!(OpDiv!(V.RHS.LHS, V.LHS), OpAdd!(Value!(1), OpDiv!(Value!(1), V.LHS))), T)) TypeOfAdd; 368 else 369 static if( /+ (+ C (*> A (+> B X))) -> (*> A (+> (- B (* C A)) X)) +/ 370 is(T.DefP == Defined) && 371 is(V.Op == MulA) && is(V.LHS.DefP == Defined) && is(V.RHS.Op == AddA) && is(V.RHS.LHS.DefP == Defined) && is(V.RHS.RHS.DefP == UnDefined) 372 /+ no repeats +/ 373 ) 374 alias OpMulA!(V.LHS, OpAddA!(OpSub!(V.RHS.LHS, OpMul!(T, V.LHS)), V.RHS.RHS)) TypeOfAdd; 375 else 376 static if( /+ (+ X (*> F (+> E X))) -> (/> (+ 1 (/ 1 F)) (+> (/ (/ E F) (+ 1 (/ 1 F))) X)) +/ 377 is(T.DefP == UnDefined) && 378 is(V.Op == MulA) && is(V.LHS.DefP == Defined) && is(V.RHS.Op == AddA) && is(V.RHS.LHS.DefP == Defined) && is(V.RHS.RHS.DefP == UnDefined) 379 && is(T == V.RHS.RHS) 380 ) 381 alias OpDivA!(OpAdd!(Value!(1), OpDiv!(Value!(1), V.LHS)), OpAddA!(OpDiv!(OpDiv!(V.RHS.LHS, V.LHS), OpAdd!(Value!(1), OpDiv!(Value!(1), V.LHS))), T)) TypeOfAdd; 382 else 327 383 static if( /+ (+ C (/> A (-R> B X))) -> (/> A (-R> (+ B (/ C A)) X)) +/ 328 384 is(T.DefP == Defined) && … … 332 388 alias OpDivA!(V.LHS, OpSubAR!(OpAdd!(V.RHS.LHS, OpDiv!(T, V.LHS)), V.RHS.RHS)) TypeOfAdd; 333 389 else 334 static if( /+ (+ C (/> A (+> B X))) -> (/> A (+> (- B (/ C A)) X)) +/335 is(T.DefP == Defined) &&336 is(V.Op == DivA) && is(V.LHS.DefP == Defined) && is(V.RHS.Op == AddA) && is(V.RHS.LHS.DefP == Defined) && is(V.RHS.RHS.DefP == UnDefined)337 /+ no repeats +/338 )339 alias OpDivA!(V.LHS, OpAddA!(OpSub!(V.RHS.LHS, OpDiv!(T, V.LHS)), V.RHS.RHS)) TypeOfAdd;340 else341 static if( /+ (+ C (/> A (-> B X))) -> (/> A (-> (+ (/ C A) B) X)) +/342 is(T.DefP == Defined) &&343 is(V.Op == DivA) && is(V.LHS.DefP == Defined) && is(V.RHS.Op == SubA) && is(V.RHS.LHS.DefP == Defined) && is(V.RHS.RHS.DefP == UnDefined)344 /+ no repeats +/345 )346 alias OpDivA!(V.LHS, OpSubA!(OpAdd!(OpDiv!(T, V.LHS), V.RHS.LHS), V.RHS.RHS)) TypeOfAdd;347 else348 390 static if( /+ (+ A (/> B X)) -> (/> B (-> (/ A B) X)) +/ 349 391 is(T.DefP == Defined) && … … 366 408 ) 367 409 alias OpMulA!(V.LHS, OpSubAR!(OpAdd!(V.RHS.LHS, OpMul!(T, V.LHS)), V.RHS.RHS)) TypeOfAdd; 368 else369 static if( /+ (+ C (*> A (+> B X))) -> (*> A (+> (- B (* C A)) X)) +/370 is(T.DefP == Defined) &&371 is(V.Op == MulA) && is(V.LHS.DefP == Defined) && is(V.RHS.Op == AddA) && is(V.RHS.LHS.DefP == Defined) && is(V.RHS.RHS.DefP == UnDefined)372 /+ no repeats +/373 )374 alias OpMulA!(V.LHS, OpAddA!(OpSub!(V.RHS.LHS, OpMul!(T, V.LHS)), V.RHS.RHS)) TypeOfAdd;375 else376 static if( /+ (+ C (*> A (-> B X))) -> (*> A (-> (+ (* C A) B) X)) +/377 is(T.DefP == Defined) &&378 is(V.Op == MulA) && is(V.LHS.DefP == Defined) && is(V.RHS.Op == SubA) && is(V.RHS.LHS.DefP == Defined) && is(V.RHS.RHS.DefP == UnDefined)379 /+ no repeats +/380 )381 alias OpMulA!(V.LHS, OpSubA!(OpAdd!(OpMul!(T, V.LHS), V.RHS.LHS), V.RHS.RHS)) TypeOfAdd;382 410 else 383 411 static if( /+ (+ A (*> B X)) -> (*> B (-> (* A B) X)) +/ … … 760 788 alias OpDivA!(OpSub!(OpDiv!(Value!(1), T.LHS), Value!(1)), T.RHS) TypeOfSub; 761 789 else 790 static if( /+ (- C (/> A (-R> B X))) -> (/> A (+> (- B (/ C A)) X)) +/ 791 is(T.DefP == Defined) && 792 is(V.Op == DivA) && is(V.LHS.DefP == Defined) && is(V.RHS.Op == SubAR) && is(V.RHS.LHS.DefP == Defined) && is(V.RHS.RHS.DefP == UnDefined) 793 /+ no repeats +/ 794 ) 795 alias OpDivA!(V.LHS, OpAddA!(OpSub!(V.RHS.LHS, OpDiv!(T, V.LHS)), V.RHS.RHS)) TypeOfSub; 796 else 797 static if( /+ (- X (/> F (-R> E X))) -> (/> (+ 1 F) (-> (/ (* E F) (+ 1 F)) X)) +/ 798 is(T.DefP == UnDefined) && 799 is(V.Op == DivA) && is(V.LHS.DefP == Defined) && is(V.RHS.Op == SubAR) && is(V.RHS.LHS.DefP == Defined) && is(V.RHS.RHS.DefP == UnDefined) 800 && is(T == V.RHS.RHS) 801 ) 802 alias OpDivA!(OpAdd!(Value!(1), V.LHS), OpSubA!(OpDiv!(OpMul!(V.RHS.LHS, V.LHS), OpAdd!(Value!(1), V.LHS)), T)) TypeOfSub; 803 else 804 static if( /+ (- C (/> A (-> B X))) -> (/> A (-R> (- (/ C A) B) X)) +/ 805 is(T.DefP == Defined) && 806 is(V.Op == DivA) && is(V.LHS.DefP == Defined) && is(V.RHS.Op == SubA) && is(V.RHS.LHS.DefP == Defined) && is(V.RHS.RHS.DefP == UnDefined) 807 /+ no repeats +/ 808 ) 809 alias OpDivA!(V.LHS, OpSubAR!(OpSub!(OpDiv!(T, V.LHS), V.RHS.LHS), V.RHS.RHS)) TypeOfSub; 810 else 811 static if( /+ (- X (/> F (-> E X))) -> (/> (- 1 F) (+> (/ (* E F) (- 1 F)) X)) +/ 812 is(T.DefP == UnDefined) && 813 is(V.Op == DivA) && is(V.LHS.DefP == Defined) && is(V.RHS.Op == SubA) && is(V.RHS.LHS.DefP == Defined) && is(V.RHS.RHS.DefP == UnDefined) 814 && is(T == V.RHS.RHS) 815 ) 816 alias OpDivA!(OpSub!(Value!(1), V.LHS), OpAddA!(OpDiv!(OpMul!(V.RHS.LHS, V.LHS), OpSub!(Value!(1), V.LHS)), T)) TypeOfSub; 817 else 818 static if( /+ (- C (/> A (+> B X))) -> (/> A (-R> (+ (/ C A) B) X)) +/ 819 is(T.DefP == Defined) && 820 is(V.Op == DivA) && is(V.LHS.DefP == Defined) && is(V.RHS.Op == AddA) && is(V.RHS.LHS.DefP == Defined) && is(V.RHS.RHS.DefP == UnDefined) 821 /+ no repeats +/ 822 ) 823 alias OpDivA!(V.LHS, OpSubAR!(OpAdd!(OpDiv!(T, V.LHS), V.RHS.LHS), V.RHS.RHS)) TypeOfSub; 824 else 825 static if( /+ (- X (/> F (+> E X))) -> (/> (- 1 F) (-> (/ (* E F) (- 1 F)) X)) +/ 826 is(T.DefP == UnDefined) && 827 is(V.Op == DivA) && is(V.LHS.DefP == Defined) && is(V.RHS.Op == AddA) && is(V.RHS.LHS.DefP == Defined) && is(V.RHS.RHS.DefP == UnDefined) 828 && is(T == V.RHS.RHS) 829 ) 830 alias OpDivA!(OpSub!(Value!(1), V.LHS), OpSubA!(OpDiv!(OpMul!(V.RHS.LHS, V.LHS), OpSub!(Value!(1), V.LHS)), T)) TypeOfSub; 831 else 832 static if( /+ (- C (*> A (-R> B X))) -> (*> A (+> (- B (* C A)) X)) +/ 833 is(T.DefP == Defined) && 834 is(V.Op == MulA) && is(V.LHS.DefP == Defined) && is(V.RHS.Op == SubAR) && is(V.RHS.LHS.DefP == Defined) && is(V.RHS.RHS.DefP == UnDefined) 835 /+ no repeats +/ 836 ) 837 alias OpMulA!(V.LHS, OpAddA!(OpSub!(V.RHS.LHS, OpMul!(T, V.LHS)), V.RHS.RHS)) TypeOfSub; 838 else 839 static if( /+ (- X (*> F (-R> E X))) -> (/> (+ 1 (/ 1 F)) (+> (/ (/ E F) (+ 1 (/ 1 F))) X)) +/ 840 is(T.DefP == UnDefined) && 841 is(V.Op == MulA) && is(V.LHS.DefP == Defined) && is(V.RHS.Op == SubAR) && is(V.RHS.LHS.DefP == Defined) && is(V.RHS.RHS.DefP == UnDefined) 842 && is(T == V.RHS.RHS) 843 ) 844 alias OpDivA!(OpAdd!(Value!(1), OpDiv!(Value!(1), V.LHS)), OpAddA!(OpDiv!(OpDiv!(V.RHS.LHS, V.LHS), OpAdd!(Value!(1), OpDiv!(Value!(1), V.LHS))), T)) TypeOfSub; 845 else 846 static if( /+ (- X (*> F (-R> E X))) -> (/> (+ 1 (/ 1 F)) (+> (/ (/ E F) (+ 1 (/ 1 F))) X)) +/ 847 is(T.DefP == UnDefined) && 848 is(V.Op == MulA) && is(V.LHS.DefP == Defined) && is(V.RHS.Op == SubAR) && is(V.RHS.LHS.DefP == Defined) && is(V.RHS.RHS.DefP == UnDefined) 849 && is(T == V.RHS.RHS) 850 ) 851 alias OpDivA!(OpAdd!(Value!(1), OpDiv!(Value!(1), V.LHS)), OpAddA!(OpDiv!(OpDiv!(V.RHS.LHS, V.LHS), OpAdd!(Value!(1), OpDiv!(Value!(1), V.LHS))), T)) TypeOfSub; 852 else 853 static if( /+ (- C (*> A (-> B X))) -> (*> A (-R> (- (* A C) B) X)) +/ 854 is(T.DefP == Defined) && 855 is(V.Op == MulA) && is(V.LHS.DefP == Defined) && is(V.RHS.Op == SubA) && is(V.RHS.LHS.DefP == Defined) && is(V.RHS.RHS.DefP == UnDefined) 856 /+ no repeats +/ 857 ) 858 alias OpMulA!(V.LHS, OpSubAR!(OpSub!(OpMul!(V.LHS, T), V.RHS.LHS), V.RHS.RHS)) TypeOfSub; 859 else 860 static if( /+ (- X (*> F (-> E X))) -> (/> (- 1 (/ 1 F)) (+> (/ (/ E F) (- 1 (/ 1 F))) X)) +/ 861 is(T.DefP == UnDefined) && 862 is(V.Op == MulA) && is(V.LHS.DefP == Defined) && is(V.RHS.Op == SubA) && is(V.RHS.LHS.DefP == Defined) && is(V.RHS.RHS.DefP == UnDefined) 863 && is(T == V.RHS.RHS) 864 ) 865 alias OpDivA!(OpSub!(Value!(1), OpDiv!(Value!(1), V.LHS)), OpAddA!(OpDiv!(OpDiv!(V.RHS.LHS, V.LHS), OpSub!(Value!(1), OpDiv!(Value!(1), V.LHS))), T)) TypeOfSub; 866 else 867 static if( /+ (- C (*> A (+> B X))) -> (*> A (-R> (+ (* C A) B) X)) +/ 868 is(T.DefP == Defined) && 869 is(V.Op == MulA) && is(V.LHS.DefP == Defined) && is(V.RHS.Op == AddA) && is(V.RHS.LHS.DefP == Defined) && is(V.RHS.RHS.DefP == UnDefined) 870 /+ no repeats +/ 871 ) 872 alias OpMulA!(V.LHS, OpSubAR!(OpAdd!(OpMul!(T, V.LHS), V.RHS.LHS), V.RHS.RHS)) TypeOfSub; 873 else 874 static if( /+ (- X (*> F (+> E X))) -> (/> (- 1 (/ 1 F)) (-> (/ (/ E F) (- 1 (/ 1 F))) X)) +/ 875 is(T.DefP == UnDefined) && 876 is(V.Op == MulA) && is(V.LHS.DefP == Defined) && is(V.RHS.Op == AddA) && is(V.RHS.LHS.DefP == Defined) && is(V.RHS.RHS.DefP == UnDefined) 877 && is(T == V.RHS.RHS) 878 ) 879 alias OpDivA!(OpSub!(Value!(1), OpDiv!(Value!(1), V.LHS)), OpSubA!(OpDiv!(OpDiv!(V.RHS.LHS, V.LHS), OpSub!(Value!(1), OpDiv!(Value!(1), V.LHS))), T)) TypeOfSub; 880 else 762 881 static if( /+ (- A (-R> B X)) -> (+> (- B A) X) +/ 763 882 is(T.DefP == Defined) && … … 774 893 alias OpDivA!(Value!(2), OpAddA!(OpDiv!(V.LHS, Value!(2)), T)) TypeOfSub; 775 894 else 776 static if( /+ (- C (/> A (-R> B X))) -> (/> A (+> (- B (/ C A)) X)) +/777 is(T.DefP == Defined) &&778 is(V.Op == DivA) && is(V.LHS.DefP == Defined) && is(V.RHS.Op == SubAR) && is(V.RHS.LHS.DefP == Defined) && is(V.RHS.RHS.DefP == UnDefined)779 /+ no repeats +/780 )781 alias OpDivA!(V.LHS, OpAddA!(OpSub!(V.RHS.LHS, OpDiv!(T, V.LHS)), V.RHS.RHS)) TypeOfSub;782 else783 static if( /+ (- C (/> A (+> B X))) -> (/> A (-R> (+ (/ C A) B) X)) +/784 is(T.DefP == Defined) &&785 is(V.Op == DivA) && is(V.LHS.DefP == Defined) && is(V.RHS.Op == AddA) && is(V.RHS.LHS.DefP == Defined) && is(V.RHS.RHS.DefP == UnDefined)786 /+ no repeats +/787 )788 alias OpDivA!(V.LHS, OpSubAR!(OpAdd!(OpDiv!(T, V.LHS), V.RHS.LHS), V.RHS.RHS)) TypeOfSub;789 else790 static if( /+ (- C (/> A (-> B X))) -> (/> A (-R> (- (/ C A) B) X)) +/791 is(T.DefP == Defined) &&792 is(V.Op == DivA) && is(V.LHS.DefP == Defined) && is(V.RHS.Op == SubA) && is(V.RHS.LHS.DefP == Defined) && is(V.RHS.RHS.DefP == UnDefined)793 /+ no repeats +/794 )795 alias OpDivA!(V.LHS, OpSubAR!(OpSub!(OpDiv!(T, V.LHS), V.RHS.LHS), V.RHS.RHS)) TypeOfSub;796 else797 895 static if( /+ (- A (/> B X)) -> (/> B (-R> (/ A B) X)) +/ 798 896 is(T.DefP == Defined) && … … 809 907 alias OpDivA!(OpSub!(Value!(1), V.LHS), T) TypeOfSub; 810 908 else 811 static if( /+ (- C (*> A (-R> B X))) -> (*> A (+> (- B (* C A)) X)) +/812 is(T.DefP == Defined) &&813 is(V.Op == MulA) && is(V.LHS.DefP == Defined) && is(V.RHS.Op == SubAR) && is(V.RHS.LHS.DefP == Defined) && is(V.RHS.RHS.DefP == UnDefined)814 /+ no repeats +/815 )816 alias OpMulA!(V.LHS, OpAddA!(OpSub!(V.RHS.LHS, OpMul!(T, V.LHS)), V.RHS.RHS)) TypeOfSub;817 else818 static if( /+ (- C (*> A (+> B X))) -> (*> A (-R> (+ (* C A) B) X)) +/819 is(T.DefP == Defined) &&820 is(V.Op == MulA) && is(V.LHS.DefP == Defined) && is(V.RHS.Op == AddA) && is(V.RHS.LHS.DefP == Defined) && is(V.RHS.RHS.DefP == UnDefined)821 /+ no repeats +/822 )823 alias OpMulA!(V.LHS, OpSubAR!(OpAdd!(OpMul!(T, V.LHS), V.RHS.LHS), V.RHS.RHS)) TypeOfSub;824 else825 static if( /+ (- C (*> A (-> B X))) -> (*> A (-R> (- (* A C) B) X)) +/826 is(T.DefP == Defined) &&827 is(V.Op == MulA) && is(V.LHS.DefP == Defined) && is(V.RHS.Op == SubA) && is(V.RHS.LHS.DefP == Defined) && is(V.RHS.RHS.DefP == UnDefined)828 /+ no repeats +/829 )830 alias OpMulA!(V.LHS, OpSubAR!(OpSub!(OpMul!(V.LHS, T), V.RHS.LHS), V.RHS.RHS)) TypeOfSub;831 else832 909 static if( /+ (- A (*> B X)) -> (*> B (-R> (* A B) X)) +/ 833 910 is(T.DefP == Defined) && … … 843 920 ) 844 921 alias OpDivA!(OpSub!(Value!(1), OpDiv!(Value!(1), V.LHS)), T) TypeOfSub; 922 else 923 static if( /+ (- A (-> B X)) -> (-R> (- A B) X) +/ 924 is(T.DefP == Defined) && 925 is(V.Op == SubA) && is(V.LHS.DefP == Defined) && is(V.RHS.DefP == UnDefined) 926 /+ no repeats +/ 927 ) 928 alias OpSubAR!(OpSub!(T, V.LHS), V.RHS) TypeOfSub; 929 else 930 static if( /+ (- X (-> E X)) -> (- 0 E) +/ 931 is(T.DefP == UnDefined) && 932 is(V.Op == SubA) && is(V.LHS.DefP == Defined) && is(V.RHS.DefP == UnDefined) 933 && is(T == V.RHS) 934 ) 935 alias OpSub!(Value!(0), V.LHS) TypeOfSub; 936 else 937 static if( /+ (- A (+> B X)) -> (-R> (+ A B) X) +/ 938 is(T.DefP == Defined) && 939 is(V.Op == AddA) && is(V.LHS.DefP == Defined) && is(V.RHS.DefP == UnDefined) 940 /+ no repeats +/ 941 ) 942 alias OpSubAR!(OpAdd!(T, V.LHS), V.RHS) TypeOfSub; 943 else 944 static if( /+ (- X (+> E X)) -> E +/ 945 is(T.DefP == UnDefined) && 946 is(V.Op == AddA) && is(V.LHS.DefP == Defined) && is(V.RHS.DefP == UnDefined) 947 && is(T == V.RHS) 948 ) 949 alias V.LHS TypeOfSub; 845 950 else 846 951 static if( /+ (- (+> B X) A) -> (+> (+ A B) X) +/ … … 851 956 alias OpAddA!(OpAdd!(V, T.LHS), T.RHS) TypeOfSub; 852 957 else 853 static if( /+ (- A (+> B X)) -> (-R> (+ A B) X) +/854 is(T.DefP == Defined) &&855 is(V.Op == AddA) && is(V.LHS.DefP == Defined) && is(V.RHS.DefP == UnDefined)856 /+ no repeats +/857 )858 alias OpSubAR!(OpAdd!(T, V.LHS), V.RHS) TypeOfSub;859 else860 958 static if( /+ (- (-> B X) A) -> (+> (- A B) X) +/ 861 959 is(T.Op == SubA) && is(T.LHS.DefP == Defined) && is(T.RHS.DefP == UnDefined) && … … 864 962 ) 865 963 alias OpAddA!(OpSub!(V, T.LHS), T.RHS) TypeOfSub; 866 else867 static if( /+ (- A (-> B X)) -> (-R> (- A B) X) +/868 is(T.DefP == Defined) &&869 is(V.Op == SubA) && is(V.LHS.DefP == Defined) && is(V.RHS.DefP == UnDefined)870 /+ no repeats +/871 )872 alias OpSubAR!(OpSub!(T, V.LHS), V.RHS) TypeOfSub;873 964 else 874 965 static if( /+ (- A B) -> (- A B) +/ trunk/backmath/meta.lisp
r176 r177 220 220 ; ((+ x (-r> e x)) (xxx)) 221 221 ; ((+ x (/r> e x)) (xxx)) 222 ; ((+ x (*> f (+> e x))) ())223 ; ((+ x (*> f (-> e x))) ())222 ((+ X (*> F (+> E X))) (/> (+ 1 (/ 1 F)) (+> (/ (/ E F) (+ 1 (/ 1 F))) X))) 223 ((+ X (*> F (-> E X))) (/> (+ 1 (/ 1 F)) (-> (/ (/ E F) (+ 1 (/ 1 F))) X))) 224 224 ; ((+ x (*> f (-r> e x))) ()) 225 ; ((+ x (/> f (+> e x))) ())226 ; ((+ x (/> f (-> e x))) ())225 ((+ X (/> F (+> E X))) (/> (+ 1 F) (+> (/ (* E F) (+ 1 F)) X))) 226 ((+ X (/> F (-> E X))) (/> (+ 1 F) (-> (/ (* E F) (+ 1 F)) X))) 227 227 ; ((+ x (/> f (-r> e x))) ()) 228 228 ; ((+ x (/r> f (+> e x))) ()) … … 488 488 489 489 ((- x x) 0) 490 ; ((- x (+> e x)) (xxx))491 ; ((- x (-> e x)) (xxx))490 ((- x (+> e x)) e) 491 ((- x (-> e x)) (- 0 e)) 492 492 ((- x (*> e x)) (/> (- 1 (/ 1 e)) x)) 493 493 ((- x (/> e x)) (/> (- 1 e) x)) 494 494 ((- x (-r> e x)) (/> 2 (+> (/ e 2) x))) 495 495 ; ((- x (/r> e x)) (xxx)) 496 ; ((- x (*> f (+> e x))) ())497 ; ((- x (*> f (-> e x))) ())498 ; ((- x (*> f (-r> e x))) ())499 ; ((- x (/> f (+> e x))) ())500 ; ((- x (/> f (-> e x))) ())501 ; ((- x (/> f (-r> e x))) ())496 ((- X (*> F (+> E X))) (/> (- 1 (/ 1 F)) (-> (/ (/ E F) (- 1 (/ 1 F))) X))) 497 ((- X (*> F (-> E X))) (/> (- 1 (/ 1 F)) (+> (/ (/ E F) (- 1 (/ 1 F))) X))) 498 ((- X (*> F (-R> E X))) (/> (+ 1 (/ 1 F)) (+> (/ (/ E F) (+ 1 (/ 1 F))) X))) 499 ((- X (/> F (+> E X))) (/> (- 1 F) (-> (/ (* E F) (- 1 F)) X))) 500 ((- X (/> F (-> E X))) (/> (- 1 F) (+> (/ (* E F) (- 1 F)) X))) 501 ((- X (/> F (-R> E X))) (/> (+ 1 F) (-> (/ (* E F) (+ 1 F)) X))) 502 502 ; ((- x (/r> f (+> e x))) ()) 503 503 ; ((- x (/r> f (-> e x))) ())
