Project

General

Profile

Feature #1778

Homogenizer

Added by John Abbott 3 months ago. Updated 2 days ago.

Status:
In Progress
Priority:
Normal
Assignee:
-
Category:
New Function
Target version:
Start date:
02 Feb 2024
Due date:
% Done:

10%

Estimated time:
Spent time:

Description

Here is a suggestion for a cleaner, simpler way to effect homogenization.
The main idea is to create a new type of object: a homogenizer.
The result is an object which can be applied as a function to a poly, and will return the homogenization.
It can also be applied to an ideal, and return the homogenization of the ideal.

Of course, the code that does the work will remain essentially the same, but
I am hoping it will be easier to use.


Related issues

Related to CoCoALib - Slug #1737: Homogenization of an ideal with ZZ^1-gradingIn Progress2023-04-29

History

#1 Updated by John Abbott 3 months ago

I am not yet sure of the details, but I am hoping that it can be used as in this example:

  ring P = NewPolyRing(...);
  RingElem f(P, "x^2-y");
  homogenizer H(P); // optional second arg saying where the homog indet should be (first/last)
  RingElem f_hom = H(f);
  ideal I = ideal([...]);
  ideal I_hom = H(I);

The ctor for homogenizer will internally create the extended poly ring, P_hom, and
also the mapping of indeterminates of P into P_hom. It will also be possible to
use the homogenizer to dehomogenize (not sure what syntax to use).

#2 Updated by John Abbott 3 months ago

Following KISS, it is probably best to try the simple interface first.
If it works well, and we like it, then we can consider offering more
options: e.g. letting the caller specify the extended poly ring, and
how the indeterminates should map.

This way all sanity checking can be done in the ctor for homogenizer,
and all later calls will not need to check much.

#3 Updated by John Abbott 3 months ago

  • Related to Slug #1737: Homogenization of an ideal with ZZ^1-grading added

#4 Updated by John Abbott 3 months ago

The ctor for homogenizer will create the extended polynomial ring.
What properties should this extended ring have?
Same coeff ring, of course.
Term ordering? Presumably compatible with that of the starting ring,
and such that the homogenizing indets have weights like the columns in
an identity matrix. But what happens below the weights in the order
matrix for the big poly ring? Maybe it depends on the intended use?

#5 Updated by John Abbott 3 months ago

  • Status changed from New to In Progress
  • % Done changed from 0 to 10

I have implemented homogenizer in OSCAR, and am happy with the interface it gives. Also some others are using it, and they seem to be happy too. So it would be good to add somethinh analogous to CoCoALib :-)

#6 Updated by John Abbott 2 days ago

This is for JOHN Knuckle down and do it!

Also available in: Atom PDF