Hi,

I guess Bronstein had a good reason to introduce this "if" here:

https://github.com/fricas/fricas/blob/master/src/algebra/algfunc.spad#L135

in the allroots function.

However, fn is either rootOf of zeroOf.
If it is rootOf, it would be surprising if p(alpha) were not zero.
So it can only be the case for fn=zeroOf.
But even then, the as the name (and the documentation) suggests.
p(alpha) should be zero if zeroOf(p, sy) returns successfully.

Now suppose for a moment that one can have

  alpha = zeroOf(p, sy) and not zero?(p alpha)

Then "p := p quo q" suggests that a possible remainder is simply
forgotten (otherwise "p exquo q" could have been used).

I'm probably not seeing the obvious. Can someone help me in
understanding this "if" construction?

Thanks
Ralf

===============================================================

    allroots(p, y, fn) ==
      zero? p => error "allroots: polynomial must be nonzero"
      zero? coefficient(p, 0) =>
         concat(0, allroots(p quo monomial(1, 1), y, fn))
      zero?(p1 := reductum p) => []$List(%)
      zero? reductum p1 => binomialRoots(p, y, fn)
      decompList := completeDecompose(p)
      # decompList > 1 =>
          h := last decompList
          g := leftFactorIfCan(p, h) :: SUP
          groots := allroots(g, y, fn)
          "append"/[allroots(h-r::SUP, y, fn) for r in groots]
      ans := []$List(%)
      while not ground? p repeat
        alpha := assign(x := new(y)$Symbol, fn(p, x))
        q     := monomial(1, 1)$SUP - alpha::SUP
        if not zero?(p alpha) then           <------------------
          p   := p quo q
          ans := concat(alpha, ans)
        else while zero?(p alpha) repeat
          p   := (p exquo q)::SUP
          ans := concat(alpha, ans)
      reverse! ans

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/fricas-devel/3a6d9b28-16a0-cc5a-dbca-1e1235e5e36e%40hemmecke.org.

Reply via email to