Opened 10 years ago

Closed 10 years ago

#551 closed bug (fixed)

bug in Ehv::isSubset(): misusage of size()

Reported by: kroeker@… Owned by: pfister
Priority: minor Milestone: 4-1-0 and higher
Component: singular-libs Version: 4-0-0
Keywords: ncols size misusage Cc:

Description

Hello,

the (public) routine

isSubset() in "ehv.lib" is incorrect due to incorrect usage of size() instead of ncols() when iterating over all ideal generators.

Here is a failing example:

    ring  r = 0,(x,y),dp;
    ideal J = x;
    ideal I = x, 0 , y;
    isSubset( I, std(J) ); //=1, wrong!
    isSubset( std(I), std(J) ) ; //=0, ok
    ASSUME( 0, isSubset( I, std(J) ) == isSubset( std(I), std(J) ) ); //fails

Also isSubset() can be modified to be more user friendly and less error-prone; that means:

  • as a user I would expect to get the correct answer, even if J is not standard basis
  • the std computation of J should be done by isSubset(), but only if necessary.

If a nonconservative version of isSubset is required, for whatever reasons, it could be added e.g. as isSubsetUnsafe

A test, if an ideal I is contained is ideal J is not special for a primary decomposition, therefore this method should move from "ehv.lib" to "ring.lib".

Bugfix is in preparation.

Jack

Change History (3)

comment:1 Changed 10 years ago by mlee

Owner: changed from somebody to pfister

comment:3 Changed 10 years ago by hannes

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.