Commit a3dbe9cc authored by Hynek Baran's avatar Hynek Baran

bugfix: single pseudodivision of polynoms of different degree

reporting of fails by MM
TODO: BUG FOUND! pokusy2deg3 RESOLVE: <0, 41344> `resolve/data/collect/detect`[0]: No unknowns in res
parent e5ced0de
......@@ -134,7 +134,7 @@ printf("Jets.newresolve v 0.2 as of Oct 2018 (%s)\n",
Reportf(1, ["Combining %a nonlinear eqs given %a linear results", nops(AN), nops(AE)]);
Reportf(2, ["...witch properties are [price, size, VarL, LC]:\n%s",
StringTools:-Join(map(a -> sprintf("%q\n",[a:-price,a:-size,a:-Vars, a:-LC]), AE))]);
Reportf(0, ["Lets resolve combined %a eqs (generated from %a nonlinear)...", nops(AE), nops(AN)]);
Reportf(0, ["Resolving %a combined eqs (generated by pseudodivision from %a nonlinear)...", nops(AE), nops(AN)]);
ans := `resolve/lin/r`(convert(AE, set), ForceFail=ff);
fi;
......@@ -367,10 +367,10 @@ end:
Reportf(2, ["Combining polynomials in %a^%a*(%a), %a^%a*(%a)", (F:-LV), (F:-degree), (F:-LC), (G:-LV), (G:-degree), (G:-LC)]);
res := `resolve/nonlin/combine/2/tool`(F, G);
#res := collect(res, Vsf, simpl, distributed);
else
Reportf(2, ["Combining polynomials in %a^%a*(%a), %a^%a*(%a)", (G:-LV), (G:-degree), (G:-LC), (F:-LV), (F:-degree), (F:-LC)]);
res := `resolve/nonlin/combine/2/tool`(F, G);
#res := collect(res, Vsg, simpl, distributed);
#else
#Reportf(2, ["Combining polynomials in %a^%a*(%a), %a^%a*(%a)", (G:-LV), (G:-degree), (G:-LC), (F:-LV), (F:-degree), (F:-LC)]);
# res := `resolve/nonlin/combine/2/tool`(F, G);
# #res := collect(res, Vsg, simpl, distributed);
fi;
return res;
......@@ -694,30 +694,25 @@ end:
T := `resolve/fails/table`[op(i)];
kind := T[':-kind'];
tprint(sprintf("%a. %a solving ", op(i), kind),newline=false);
tprint(sprintf("%a. ", op(i)),newline=false);
if `report/tab`[ProcBaseSymbol()] > 1 then printf("by %a ", T['source']) fi;
printf(sprintf("failed in %a", T['LV']));
if type(T, record(FailParents)) then
F, G := op(T['FailParents']);
printf("\nwhile pseudodividing polynomials whose leading terms are\n%a^%a*(%a), %a^%a*(%a)", # F:-FailIndex, G:-FailIndex,
(F:-LV),(F:-degree),(F:-LC), (G:-LV),(G:-degree),(G:-LC));
### TODO: "parents:", F:-FailIndex, G:-FailIndex);
fi;
if kind = 'linear' then
printf(sprintf("linear resolving failed in %a", T['LV']));
if T['solvable']=true then printf(" (solvable) ") fi;
print (smash(T['LC'])*T['LV'] = -smash(T['rest']));
elif kind = 'remainder' then
printf(" on coefficient");
print (smash(G:-LC));
elif kind = 'nonlinear' then
printf("^%a", T['degree']);
printf("nonlinear resolving failed in %a^%a", T['LV'], T['degree']);
print(smash(T['expr']));
elif kind = 'remainder' then
#if type(T, record(FailParents)) then
F, G := op(T['FailParents']);
printf("pseudodivision of polynoms in %a^%a / %a^%a failed, leading terms are", F:-LV, F:-degree, G:-LV, G:-degree);
print(smash(F:-LC * F:-LV^F:-degree));
print(smash(G:-LC * G:-LV^G:-degree));
elif kind = 'unknownless' then
print(smash(T['expr']));
......@@ -727,6 +722,8 @@ end:
end:
`resolve/fails/print` := proc()
global `resolve/fails/table`;
local inds := [indices(`resolve/fails/table`)];
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment