Design #1407
Tagged values (Hilbert Series)
Description
Bernhard Andraschko has a new program which calculates Hilbert series.
He would like to make it produce a result compatible with the result produced by the fns in hp.cpkg5
.
The problem is that tagging takes into account the "active" package at the time that the tag was applied.
So he gets an object of "type" TopLevel.HPSeries
instead of hp.HPSeries
; and the fns in hp.cpkg5
refuse to handle his Hilbert series (e.g for printing).
How to resolve this? Neatly!
History
#1 Updated by Anna Maria Bigatti about 4 years ago
- Assignee set to Anna Maria Bigatti
- % Done changed from 0 to 20
Fate wants that I'm facing exactly the same problem!!
And I have a neat idea in mind!
Bernhard: which tags do you need? just HPSeries?
#2 Updated by Bernhard Andraschko about 4 years ago
Yes, i just want to create a "new" Hilbert series without knowing a generating system of the ring corresponding to it.
For getting the values of the Hilbert function I have to do EvalHilbertFn(HS,d)
which involves a type check.
#3 Updated by Anna Maria Bigatti about 4 years ago
Done.
The solution I implemented is this. (a bit like public/private functions in C++)
The package $hp, responsible of the tags, exports the functions
TaggedHilbertFn(X); TaggedHilbertSeries(X);
which return X with the desired tag.
I modify hp.cpkg5 so that it uses these functions internally as well.
From other packages this is the only way to assign the tags (Giovanni Lagorio actually made a good design, preventing tags outside the defining package!!).
When I have time, I'll also add some sanity check on X, for example that it must be a record with suitable fields. This way the "tag" will also be a certification of well formed object.
I think this is neat!
#4 Updated by Anna Maria Bigatti about 4 years ago
- File hp.cpkg5 added
#5 Updated by Anna Maria Bigatti about 4 years ago
#6 Updated by Anna Maria Bigatti about 4 years ago
- File deleted (
hp.cpkg5)
#7 Updated by John Abbott over 2 years ago
- Status changed from New to In Progress
What is the status of this issue? It is resolved?
Is %done correct?
#8 Updated by John Abbott about 2 years ago
- Status changed from In Progress to Feedback
- % Done changed from 20 to 90
The comments suggest that this issue is essentially fixed.. so I have advanced the status to feedback.
#9 Updated by Anna Maria Bigatti about 2 years ago
- Subject changed from Tagged values to Tagged values (Hilbert Series)
- Status changed from Feedback to Closed
- % Done changed from 90 to 100
- Estimated time set to 1.51 h
Still to do: sanity checks (make another issue, in case...)