Project

General

Profile

Feature #218

CoCoALib normaliz interface

Added by Christof Soeger almost 12 years ago. Updated almost 10 years ago.

Status:
Closed
Priority:
Normal
Category:
Various
Start date:
03 Aug 2012
Due date:
% Done:

100%

Estimated time:
Spent time:

Description

The Normaliz::cone functions are now all returning results instead of having them as a first reference parameter. We tested that it is no big drawback and decided to do it like this a while ago. One main argument is that the c++ move mechanisms will avoid copying.

The construction of a Normaliz::cone looks a bit strange to me: Normaliz::cone C3(Normaliz::NewCone(l, InputType)); I think this is a relict of the LongCone / MPZCone and Normaliz::cone C3(l, InputType); should be enough. What do you think?


Related issues

Related to CoCoA-5 - Feature #204: NmzComputation: the powerful NormalizComputation function in CoCoA-5Closed2012-07-04

Related to CoCoALib - Feature #554: CoCoALib-Normaliz interface: cannot print a coneClosed2014-05-14

History

#1 Updated by Anna Maria Bigatti almost 12 years ago

Christof Soeger wrote:

The Normaliz::cone functions are now all returning results instead of having them as a first reference parameter. We tested that it is no big drawback and decided to do it like this a while ago. One main argument is that the c++ move mechanisms will avoid copying.

good, now in CVS

The construction of a Normaliz::cone looks a bit strange to me: Normaliz::cone C3(Normaliz::NewCone(l, InputType)); I think this is a relict of the LongCone / MPZCone and Normaliz::cone C3(l, InputType); should be enough. What do you think?

ehm.... yes, should be enough. John?

#2 Updated by Christof Soeger over 11 years ago

We agreed on:
keep the SmartPtr class cone
remove the abstract base class
name the implementation class ConeImpl

#3 Updated by Christof Soeger over 11 years ago

Did what I said in the previous post and:
  • Integration of the ConeImpl.myXX() into the XX, only the myCompute functions are left in ConeImpl, remaining functions code was integrated into the friend non-member functions
  • moved ifdef CoCoA_WITH_NORMALIZ in CoCoALibSupplement so the functions are completely unavailable when compiled without libnormaliz
  • code clean up

#4 Updated by Christof Soeger over 11 years ago

  • Made the NewCone functions to constructors of cone.
  • Introduced some abbreviation in the method names:
    IntegralClosure -> IntClosure
    MonomialIdeal -> MonIdeal
    Normaliz -> Nmz (the prefix for CoCoA5 functions)
  • New function IntClosureMonIdeal

#5 Updated by Christof Soeger over 11 years ago

More code clean up and use of new libnormaliz functions for meaningful error messages when something couldn't be computed.

#6 Updated by Anna Maria Bigatti over 10 years ago

  • Category set to Various
  • Target version set to CoCoALib-0.99532
  • % Done changed from 0 to 50

#7 Updated by Christof Soeger over 10 years ago

  • Status changed from New to In Progress
  • % Done changed from 50 to 80

added HilbertSeries and multiplicity functions

#8 Updated by Anna Maria Bigatti about 10 years ago

  • Target version changed from CoCoALib-0.99532 to CoCoALib-0.99533 Easter14

#9 Updated by Anna Maria Bigatti about 10 years ago

  • Target version changed from CoCoALib-0.99533 Easter14 to CoCoALib-0.99534 Seoul14

... and write submission to Seoul and relative paper.

#10 Updated by Christof Soeger about 10 years ago

I implemented additional return functions (step 1 in my update on issue #204).

The myComputation functions should be available for Normaliz::Cone, they are implemented in ConeImpl. I can make them public there, but still from the header they would not be visible. What is the CoCoALib way for such a function?
  • (A) Cone.myCompute(properties_to_compute), or
  • (B) ComputeProperties(Cone, properties_to_compute)

I implemented (A) and use it in the CoCoA 5 function NmzComputation.

After lunch I will add tests.

JAA20140509 OK for impl (A); maybe we can look at it when I come to Osnabrueck.

#11 Updated by John Abbott almost 10 years ago

  • Status changed from In Progress to Closed
  • % Done changed from 80 to 100

@Christof: you've done a good job, I think this issue can be closed now. Closing!

Also available in: Atom PDF