Project

General

Profile

Feature #1596

Add CoCoA5 function NmzHilbertBasisKer

Added by Anna Maria Bigatti about 3 years ago. Updated over 1 year ago.

Status:
Resolved
Priority:
Normal
Category:
CoCoA-5 function: new
Target version:
Start date:
14 May 2021
Due date:
% Done:

80%

Estimated time:
Spent time:

Description

Add function to do HilbertBasisKer using Normaliz (much faster)


Related issues

Related to CoCoA-5 - Support #1478: HilbertBasis: clarifyClosed2020-08-06

Related to CoCoA-5 - Support #225: HilbertBasis: cocoa vs normalizClosed2012-09-10

Related to CoCoA-5 - Design #1194: Rename HilbertBasisKer into LinKerHilbertBasis?Rejected2018-06-25

History

#1 Updated by Anna Maria Bigatti about 3 years ago

  • Subject changed from Add CoCoA5 function @NmzHilbertBasisKer@ to Add CoCoA5 function NmzHilbertBasisKer

#2 Updated by Anna Maria Bigatti about 3 years ago

#3 Updated by Anna Maria Bigatti about 3 years ago

  • Related to Support #225: HilbertBasis: cocoa vs normaliz added

#4 Updated by Anna Maria Bigatti about 3 years ago

Added NmzHilbertBasisKer. In BuiltInFunctions-Normaliz.C

  matrix NmzHilbertBasisKer_forC5(ConstMatrixView M)
  {
    return NewDenseMat(RingOf(M), Normaliz::HilbertBasis(Normaliz::cone(libnormaliz::Type::equations, M)));
  }

The key is constructing the cone with equations. (Thanks to Winfried Bruns)

#5 Updated by Anna Maria Bigatti about 3 years ago

  • Status changed from New to Resolved
  • % Done changed from 0 to 80

Add entry in cocoa manual. (for Anna)

#6 Updated by Anna Maria Bigatti about 3 years ago

Internally, in CoCoALib, the input/output interface with Normaliz is through matrices, and this was chosen because it is mathematically meaningful (all vectors over the same RING, and of the same length)
And so is the interface with CoCoA-5.

This in in contrast with CoCoA's HilbertBasisKer, returning LIST of LIST of INT. Clarify this in documentation and check how to make them comparable/compatible (if it's worth the effort).

#7 Updated by John Abbott over 2 years ago

Compare also with LinKer which returns MAT and LinKerBasis, returning LIST LIST RINGELEM.

#8 Updated by Anna Maria Bigatti over 2 years ago

  • Related to Design #1194: Rename HilbertBasisKer into LinKerHilbertBasis? added

#9 Updated by John Abbott over 2 years ago

  • Target version changed from CoCoA-5.4.0 to CoCoA-5.4.2
Postponed to 5.4.2 because there are some matters still to be discussed:
  • should the return value be a matrix over QQ or ZZ --- other Nmz functions return matrices over QQ.
  • should the vectors be rows or columns --- note that LinKer returns the vectors as cols, but curr impl of NmzHilbertBasisKer returns vecs as rows
  • coherence with return type from HilbertBasisKer

#10 Updated by Anna Maria Bigatti over 1 year ago

  • Target version changed from CoCoA-5.4.2 to CoCoA-5.4.4

Also available in: Atom PDF