Project

General

Profile

Feature #729

Betti numbers, betti diagram

Added by John Abbott about 9 years ago. Updated about 6 years ago.

Status:
In Progress
Priority:
Normal
Assignee:
-
Category:
Data Structures
Target version:
Start date:
08 Jun 2015
Due date:
% Done:

10%

Estimated time:
Spent time:

Description

Design a good data structure for storing Betti numbers (also for multigraded case).


Related issues

Related to CoCoA-5 - Feature #626: Output Betti numbersNew2014-09-17

Related to CoCoALib - Feature #386: add resolution data typeIn Progress2013-07-23

History

#1 Updated by John Abbott about 9 years ago

Mario points out that for a non-graded case we will also need a datastructure.
UPDATE (20150608) Mario thinks it is better to skip consideration of the non-graded case because the numbers depend on the actual resolution chosen.

The usual case is with a grading over ZZ, when the Betti diagram is represented as a matrix.

#2 Updated by John Abbott about 9 years ago

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

Mario suggested that the internal representation should be vector< map<degree, long> >.

The resolution is a list of modules (with homomorphisms between them) traditionally indexed from 0 on the right, and with higher integers as ones goes to the left (in the traditional way of writing them).

Since the list of modules is "dense" (i.e. there are no "holes") is seems most sensible to use a vector with one position for each module. In the entry for each module we must find the shifts and their multiplicities: each degree(-shift) appears at most once, and has a positive integer multiplicity. Using a std::map will ensure that each degree appears only once. Degrees must be ordered to use them as keys in a map, but in fact they are already (lex) ordered.

Note that this design also allows an empty resolution (e.g. the resolution of the zero ideal).

Note: normally the shifts are written prefixed with a minus sign. In CoCoALib we have gradings over some cartesian power of ZZ, so we can negate degrees. What do we want to store in the Betti structure? A shift which is to be subtracted from the plain degree, or a shift which is to be added to a plain degree?

#3 Updated by Anna Maria Bigatti over 8 years ago

  • Target version changed from CoCoALib-0.99540 Feb 2016 to CoCoALib-0.99560

#4 Updated by Anna Maria Bigatti about 8 years ago

  • Target version changed from CoCoALib-0.99560 to CoCoALib-0.99550 spring 2017

#5 Updated by John Abbott almost 8 years ago

  • Target version changed from CoCoALib-0.99550 spring 2017 to CoCoALib-0.99560

#6 Updated by John Abbott over 6 years ago

  • Target version changed from CoCoALib-0.99560 to CoCoALib-0.99600

#7 Updated by John Abbott about 6 years ago

  • Target version changed from CoCoALib-0.99600 to CoCoALib-1.0

Also available in: Atom PDF