Rev 18292 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
18136 | bpr | 1 | !! this file is an option for anstype litexp (or other) |
2 | !! it checks if wims_read_parm is a developped and reduced polynom of Z[x] |
||
17282 | guerimand | 3 | !! no bracket |
18136 | bpr | 4 | !! each term should have to be simplified using power of the variable (x*x not accepted for x^2) |
5 | !! each coefficient has to be calculated (3*5*x^2 not accepted) |
||
6 | !! only for polynom with one variable and coefficients in Z |
||
7 | !! |
||
17282 | guerimand | 8 | !! error checked : |
9 | !! - notreduced termealgsimp : x*x instead of x^2 |
||
18136 | bpr | 10 | !! - notreduced termesamepower : several terms with same power of variable |
11 | !! - notreduced termenumsimp : numerical coefficient of a term is not calculated |
||
17282 | guerimand | 12 | !! - notreduced parenthesis : use of parenthesis |
13 | !! - usedivide : use of / symbol |
||
18411 | bpr | 14 | !set var =!varlist nofn $wims_read_parm |
15 | !set varcnt =!itemcnt $var |
||
16 | !if $varcnt>1 |
||
17 | !exit |
||
18 | !endif |
||
17282 | guerimand | 19 | nb_=!charcnt $wims_read_parm |
20 | nbt=0 |
||
18136 | bpr | 21 | !reset terme ltermes wrong checkd_ |
17282 | guerimand | 22 | k_=1 |
23 | !while ($k_<=$nb_ and $wrong=$empty) or $terme!=$empty |
||
17292 | guerimand | 24 | c_=!char $k_ of $wims_read_parm |
25 | !if ($c_=+ or $c_=-) or $k_>$nb_ |
||
26 | !if $terme!=$empty |
||
27 | !! analyse du terme |
||
28 | t_=!replace internal * by , in $terme |
||
29 | !distribute item 0,0 into flag_var,flag_num |
||
17356 | guerimand | 30 | !distribute item 1,0 into kk_,p_ |
17292 | guerimand | 31 | nb2_=!itemcnt $t_ |
32 | !while $kk_<=$nb2_ and $wrong=$empty |
||
33 | tt_=!item $kk_ of $t_ |
||
34 | ttt_=$[$tt_*1] |
||
35 | !if $ttt_=NaN |
||
36 | !if $flag_var=1 |
||
37 | !! check of produce of variable (not use of puissance) |
||
38 | wrong=badform notreduced termealgsimp $terme |
||
39 | !else |
||
40 | flag_var=1 |
||
17356 | guerimand | 41 | !!puissance check |
42 | ttt_=!replace internal ^ by , in $tt_ |
||
43 | ttt_=!item 2 of $ttt_ |
||
17360 | guerimand | 44 | !if $ttt_!=$empty and $ttt_<=1 |
17356 | guerimand | 45 | wrong=badform notreduced power0 $terme |
17292 | guerimand | 46 | !endif |
17356 | guerimand | 47 | !default ttt_=1 |
48 | p_=$[$p_+$ttt_] |
||
17292 | guerimand | 49 | !endif |
50 | !else |
||
51 | !if $flag_num=1 |
||
52 | wrong=badform notreduced termenumsimp $terme |
||
53 | !endif |
||
17356 | guerimand | 54 | !if $flag_var=1 |
55 | wrong=badform notreduced constantbefore $terme |
||
56 | !endif |
||
17292 | guerimand | 57 | flag_num=1 |
58 | !endif |
||
59 | !increase kk_ |
||
60 | !endwhile |
||
17360 | guerimand | 61 | !increase nbt |
62 | pp_=!positionof item $p_ in $checkd_ |
||
63 | !if $pp_!=$empty and $wrong=$empty |
||
64 | wrong=badform notreduced termesamepower $(ltermes[$pp_]),$terme |
||
17356 | guerimand | 65 | !else |
17511 | guerimand | 66 | checkd_=!append item $p_ to $checkd_ |
17356 | guerimand | 67 | !endif |
17292 | guerimand | 68 | ltermes=!append item $terme to $ltermes |
69 | !if $k_>$nb_ or $c_=+ |
||
70 | !reset terme |
||
71 | !else |
||
72 | terme=- |
||
73 | !endif |
||
74 | !endif |
||
75 | !else |
||
76 | !if $c_ isin () |
||
77 | wrong=badform notreduced parenthesis |
||
78 | !else |
||
79 | !if $c_=/ |
||
18206 | reyssat | 80 | wrong=badform usebadchar / |
17292 | guerimand | 81 | !else |
82 | terme=$terme$c_ |
||
83 | !endif |
||
84 | !endif |
||
85 | !endif |
||
18292 | reyssat | 86 | !if ($terme=$empty) and ($c_=-) |
87 | terme=- |
||
88 | !endif |
||
17292 | guerimand | 89 | !increase k_ |
17282 | guerimand | 90 | !endwhile |