### bugfix: single pseudodivision of polynoms of different degree

```reporting of fails by MM
TODO: BUG FOUND! pokusy2deg3 RESOLVE: <0, 41344> `resolve/data/collect/detect`: 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.
pokusy/pokusy3.mw 0 → 100644
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!