matrixfunctions / GraphMatFun.jl

Computation graphs for matrix functions
MIT License
13 stars 0 forks source link

Extended DegOpt #84

Open jarlebring opened 6 months ago

jarlebring commented 6 months ago

At the moment we have DegOpt objects that corresponds to evaluations

B3=  (x I + x A) * (x I + x A)
B4=  (x I + x A + xB3) * (x I + x A +xB3)
B5=  (x I + x A + xB3+xB4) * (x I + x A +xB3 +xB4)
...

This is complete and one can represent any polynomial evaluation scheme in this way. However, many schemes are formulated in a slightly different way

B3=  (x I + x A) * (x I + x A) + x I + xA
B4=  (x I + x A + xB3) * (x I + x A +xB3) + xI +xA +xB3
B5=  (x I + x A + xB3+xB4) * (x I + x A +xB3 +xB4) + xI +xA +xB3+xB4
...

One can always transform the second scheme to the first by incorporating the additional coefficients into the DegOpt-coefficients (basically adding multiples at appropriate places).

Since many schemes (e.g Horner, PS, Sastre, .. ) are easier to formulate in the second scheme, we could consider introducting ExtendedDegOpt which has three matrices (Ha,Hb,Hc,y) representing the second scheme. A function which transforms an extended to a standard DegOpt would make it much easier to use and implement other evaluations:

  degopt=reduce_degopt(ext_degopt::ExtendedDegOpt)
jarlebring commented 6 months ago

"Up for grabs" :-)