Now thinking about the "reductum(0)=0" assumption.
I can easily remove it from my code (see below).

    tailReduce(x: X, basis: List X): X ==
        empty? basis => x
        p: R := polynomial x
        -- We iterate over the non-leading terms of polynomial(x).
        r: R := 0
        v: V := representation x
        m: C := multiplier x
        -- We keep the representation part attached to p and hand it
        -- over to denominatorFreeTopReduce. Thus we get the representation
        -- from the reduced polynomial.
        while not zero? p repeat
            r := r + leadingMonomial p
            p := reductum p
            x := denominatorFreeTopReduce([p, v, 1], basis)
            v := representation x
            p := polynomial x
            m := multiplier(x) * m
            r := multiplier(x) * r
        [r, v, m]


and compare with
https://github.com/fricas/fricas/commit/a4c3af045560d631f06c68ca542676b84cd227d2#diff-ebde1584f365f97c30d05da63bb4ba4bR117

Waldek, would you prefer this new code in another commit? (I think I
should have done that rewrite before. Sorry.)

I just had a quick check. I modified
GeneralDistributedMultivariatePolynomial in such a way that it gives an
error on reductum(0). Then my test code does not even reach
reduce$ExtendedPolynomialReduction, because groebner stops with the
reductum(0) error.

Ralf

-- 
You received this message because you are subscribed to the Google Groups 
"FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to fricas-devel+unsubscr...@googlegroups.com.
To post to this group, send email to fricas-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/fricas-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to