Slug #799
vector of "indets" in each PPMonoid?
Description
Is it truly useful to have each PPMonoid keep a vector of its own indets?
This is not a problem if the indets are only a few, but becomes expensive if there are many indets.
History
#1
Updated by John Abbott over 8 years ago
The vector of indets is used in the (mem) function mySymbolValue
, which currently returns a reference to the image PP.
Is this mem fn called that often? Would there be noticeable performance degradation if the mem fn created a new PP each time?
#2
Updated by John Abbott over 8 years ago
- Status changed from New to In Progress
- % Done changed from 0 to 10
As far as I can tell PPMonoidBase::myIndets
is used only once, in the (inefficient) fn PPMonoidBase::mySymbolValue
; this latter fn is called only by SparsePolyRingBase::mySymbolValue
which is apparently called only by the pseudo-ctor for a RingElem
from a symbol
.
#3
Updated by John Abbott over 8 years ago
- Assignee set to John Abbott
- Priority changed from Normal to Low
- Target version changed from CoCoALib-0.99540 Feb 2016 to CoCoALib-1.0
- % Done changed from 10 to 20
I have lowered the priority of this issue because it will take some time to complete, and the resulting improvement will not be very visible.
I am also thinking that, by default, when creating a polyring with many indets then the preferred PPMonoid
impl will be the sparse one, and then the memory consumption problem will be largely resolved.