Rev 20 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
20 | reyssat | 1 | # Standardized inequality checker, sensible to m_environ. |
2 | # For RR, there is a danger of rounding errors rending false comparisons! |
||
3 | # Input are lines, "$left,$sign,$right". |
||
4 | # Output are lines, in $out. `true' if true, `bad' if non-checkable. |
||
5 | |||
6 | I__=!nonempty lines $wims_read_parm |
||
7 | n__=!linecnt $I__ |
||
8 | !reset out,p__ |
||
9 | !distribute item <,=,>,! into lt,eq,gt,nt |
||
10 | !distribute item integerp,ratnump,constantp into p_ZZ,p_QQ,p_RR |
||
11 | ch__=$(p_$m_environ) |
||
12 | !for i__=1 to $n__ |
||
16136 | bpr | 13 | l__=!line $i__ of $I__ |
14 | !distribute items $l__ into L__,S__,R__ |
||
15 | L__=$maximasimp($L__) |
||
16 | R__=$maximasimp($R__) |
||
17 | !if $S__ isitemof $lt,$gt,$lt$eq,$gt$eq,$eq,$nt$eq |
||
18 | !if $m_environ notwordof ZZ QQ RR |
||
19 | p__=!append line "bad"; to $p__ |
||
20 | !else |
||
21 | p__=!append line if $ch__($L__) and $ch__($R__) then is($L__ $S__ $R__) else "bad"; to $p__ |
||
22 | !endif |
||
20 | reyssat | 23 | !else |
16136 | bpr | 24 | p__=!append line "not_comparison"; to $p__ |
20 | reyssat | 25 | !endif |
26 | !next i__ |
||
27 | |||
28 | out__=!exec maxima $p__ |
||
29 | |||
30 | !for i__=1 to $n__ |
||
16136 | bpr | 31 | l__=!line $i__ of $out__ |
32 | !if $l__ notwordof true false |
||
33 | l__=bad |
||
34 | !endif |
||
35 | out=!append line $l__ to $out |
||
20 | reyssat | 36 | !next i__ |