Main point is performance for small inputs where big-O reasoning
may be misleading. Fusing operations _is_ important for
performace. In POLYVEC we have 'vector_combination', it
is logically redundant, having just multiplication by scalar
and addition would do. But fused operation means that
some time-critical operations in guessing package as
2 times faster than with simpler implementation, so IMO
it is worth the effort.
You may be able to re-arrage operations to make them faster
than current way, but simply replacing pomopo! and fmecg
by higher level operations is likely to give measurable
slowdown.
BTW: Our polynomial arithmetic is higly recursive and
pomopo! and fmecg serve as final points of recursion,
so any change here while not very tricky may be more
tricky than you think.
BTW2: pomopo! and fmecg are really internal things,
exported because they must be available in more than
1 domain/package. So it is reasonable to use somewhat
obscure names so that normal users are more likely to ignore
them.
--
Waldek Hebisch