Project

General

Profile

Feature #883

gin: return/print a suitable change of variables

Added by John Abbott almost 8 years ago. Updated almost 7 years ago.

Status:
Closed
Priority:
Normal
Category:
enhancing/improving
Start date:
10 May 2016
Due date:
% Done:

100%

Estimated time:
2.01 h
Spent time:

Description

Werner Seiler asks whether it would be possible to make gin also produce a "good" linear change of variables (ideally a fairly simple one).


Related issues

Related to CoCoA-5 - Feature #588: Resume code for "gin" (generic initial ideal)Closed2014-07-15

History

#1 Updated by Anna Maria Bigatti almost 8 years ago

John Abbott wrote:

Werner Seiler asks whether it would be possible to make gin also produce a "good" linear change of variables (ideally a fairly simple one).

Indeed not: gin actually chooses horrible linear changes to "guarantee genericity".
(then it performs the computation with RingTwinFloats for considerable speed up).

If required we could make a function looking for a "simple" linear change providing gin (i.e. should compute gin, then try with small linear changes and return the first one providing the same LT)

#2 Updated by John Abbott almost 8 years ago

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

Werner also asked whether the transformation used is triangular or square.

It might be nice to have the option to receive a suitable transformation; the result would then have to be a record?

Another possibility would be a separate function which takes an ideal and its gin, then produces a suitable transformation... but there is then the risk that it is called with incorrect args.

NOTE Anna, do you have any idea how much it might cost to check a single "simple" transformation?

#3 Updated by Anna Maria Bigatti almost 8 years ago

John Abbott wrote:

Werner also asked whether the transformation used is triangular or square.

triangular (auxiliary function RandIdeal in monomial_ideals.cpkg5)

It might be nice to have the option to receive a suitable transformation; the result would then have to be a record?

Well, non in gin: that should do just the gin!
We could call it LT(ideal(apply(phi, gens(I)))) ;-)

Another possibility would be a separate function which takes an ideal and its gin, then produces a suitable transformation... but there is then the risk that it is called with incorrect args.

DANGER DANGER!!

NOTE Anna, do you have any idea how much it might cost to check a single "simple" transformation?

It depends how simple... computation in QQ may just take longer than a hard transformation with TwinFloats. Do you want me to make a "gin tools" to play with?

#4 Updated by John Abbott almost 8 years ago

  • % Done changed from 10 to 20

How about a new fn which computes both gin and a "simple" suitable transformation?
Or maybe a fn which takes an ideal and its supposed gin, then makes some some number of trials to find a suitable simple transformation (or indicates failed if no suitable transformation was found). This fn should then be safe against bad inputs -- presumably it would always return failure.

Perhaps Werner could write here a better description of what he is hoping for.

#5 Updated by Anna Maria Bigatti about 7 years ago

  • Status changed from In Progress to Feedback
  • Assignee set to Anna Maria Bigatti
  • Target version changed from CoCoA-5.?.? to CoCoA-5.2.0 spring 2017
  • % Done changed from 20 to 90
  • Estimated time set to 2.01 h

Final decision is:
- two good changes of coordinates are printed when verbosity is set
- a simpler change of coordinates giving gin may then be determined //a posteriori//

If I find a good way to make a simple change of coordinates giving gin I'll write a paper about it!! ;-)

#6 Updated by John Abbott about 7 years ago

Printing out the changes of coordinates is OK as a "temporary fix".

An equivalent function in CoCoALib should certainly not print out anything.

It would still be nice to have a fn which finds a simple GIN coord change (presumably by searching a posteriori).
"simple" should probably mean sparse and with small integer coeffs.

#7 Updated by Anna Maria Bigatti about 7 years ago

John Abbott wrote:

Printing out the changes of coordinates is OK as a "temporary fix".

Well, depends on what Werner wanted to do with it ;-)

An equivalent function in CoCoALib should certainly not print out anything.

Certainly does, if you use SetVerbosityLevel!
That's how it is done in CoCoA-5.

It would still be nice to have a fn which finds a simple GIN coord change (presumably by searching a posteriori).
"simple" should probably mean sparse and with small integer coeffs.

Not sure what you would need it for, if you do it a posteriori, after computing the gin.
... but if you can do it a priori, write a paper about it! ;-)

#8 Updated by Anna Maria Bigatti about 7 years ago

  • Related to Feature #588: Resume code for "gin" (generic initial ideal) added

#9 Updated by Anna Maria Bigatti almost 7 years ago

  • Subject changed from gin: return a suitable change of variables to gin: return/print a suitable change of variables
  • Status changed from Feedback to Closed
  • % Done changed from 90 to 100

With verbosity we print the changes used. I think this was the actual request by Werner Seiler, so I close this issue.
(any improvement on this will be in a related issue)

Also available in: Atom PDF