|
1132 | 1132 | ConstantSolveFamily:=proc(Equations, FamPositive, FamNotNull, Inequalities, Inequations) |
1133 | 1133 | local i; |
1134 | 1134 | for i from 1 to nops(Equations) do |
1135 | | - if sign(Equations[i]) <> 0 then |
| 1135 | + if Equations[i] <> 0 then |
1136 | 1136 | return []; |
1137 | 1137 | end if; |
1138 | 1138 | end do; |
1139 | 1139 | for i from 1 to nops(FamPositive) do |
1140 | | - if sign(FamPositive[i]) <= 0 then |
| 1140 | + if FamPositive[i] < 0 then |
1141 | 1141 | return []; |
1142 | 1142 | end if; |
1143 | 1143 | end do; |
1144 | 1144 | for i from 1 to nops(Inequalities) do |
1145 | | - if sign(Inequalities[i]) <= 0 then |
| 1145 | + if Inequalities[i] < 0 then |
1146 | 1146 | return []; |
1147 | 1147 | end if; |
1148 | 1148 | end do; |
1149 | 1149 | for i from 1 to nops(FamNotNull) do |
1150 | | - if sign(FamNotNull[i]) = 0 then |
| 1150 | + if FamNotNull[i] = 0 then |
1151 | 1151 | return []; |
1152 | 1152 | end if; |
1153 | 1153 | end do; |
1154 | 1154 | for i from 1 to nops(Inequations) do |
1155 | | - if sign(Inequations[i]) = 0 then |
| 1155 | + if Inequations[i] = 0 then |
1156 | 1156 | return []; |
1157 | 1157 | end if; |
1158 | 1158 | end do; |
|
1915 | 1915 | end if; |
1916 | 1916 |
|
1917 | 1917 | NewEquations := select(_pol -> not type(_pol, constant), Equations); |
| 1918 | + if convert(remove(member, Equations, NewEquations),set)<>{0} then |
| 1919 | + return []; |
| 1920 | + end if; |
1918 | 1921 |
|
1919 | 1922 | vars:=[op(indets([op(Equations), op(Inequalities), op(Inequations)]))]; |
| 1923 | + if nops(vars) = 0 then |
| 1924 | + return ConstantSolveFamily(Equations, Inequalities, Inequations, |
| 1925 | + [], []); |
| 1926 | + end if; |
| 1927 | +
|
1920 | 1928 | sols := []; |
1921 | 1929 | lsigns:={}: |
1922 | 1930 | if nops(NewEquations) > 0 then |
|
0 commit comments