File: minimalBetti-doc.m2

package info (click to toggle)
macaulay2 1.25.05%2Bds-2
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 172,152 kB
  • sloc: cpp: 107,824; ansic: 16,193; javascript: 4,189; makefile: 3,899; lisp: 702; yacc: 604; sh: 476; xml: 177; perl: 114; lex: 65; python: 33
file content (71 lines) | stat: -rw-r--r-- 3,217 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
doc ///
   Key
      minimalBetti
     (minimalBetti,Ideal)
     (minimalBetti,Module)
     [minimalBetti,DegreeLimit]
     [minimalBetti,LengthLimit]
     [minimalBetti,Weights]
     [minimalBetti,ParallelizeByDegree]
   Headline
     minimal betti numbers of (the minimal free resolution of) a homogeneous ideal or module
   Usage
     B = minimalBetti I
     B = minimalBetti(I, DegreeLimit=>d, LengthLimit=>len, Weights=>h)
   Inputs
     I:{Ideal,Module}
       a homogeneous ideal or module in a singly graded polynomial ring or skew commuting polynomial ring over a finite prime field
     DegreeLimit=>ZZ
       if given, only compute enough to determine the Betti diagram up to and including the row labelled {\tt d}
     LengthLimit=>ZZ
       if given, only compute enough to determine the Betti diagram up to and including the column labelled {\tt len}
     Weights=>List
       see @TO [betti, Weights]@
     ParallelizeByDegree => Boolean
       Use additional parallelism to compute different (homological degree, internal degree) pairs in
       parallel when possible. To control parallelism, see @TO "parallelism in engine computations"@
   Outputs
     :BettiTally
   Description
    Text
      Given a singly-graded module, this function computes the minimal betti numbers of the module.
      If the input is an ideal $I \subset S$, it computes the minimal betti numbers of $S^1/I$.

      The algorithm used is based on the @TO FastNonminimal@ algorithm,
      except that the complex is not constructed, resulting in a smaller memory footprint and often reduced computation time.
    Example
      I = Grassmannian(1,6, CoefficientRing => ZZ/101);
      S = ring I      
      elapsedTime C = minimalBetti I
    Text
      One can compute smaller parts of the Betti table, by using @TO DegreeLimit@ and/or @TO LengthLimit@.
    Example
      I = ideal I_*;
      elapsedTime C = minimalBetti(I, DegreeLimit=>2)
      I = ideal I_*;
      elapsedTime C = minimalBetti(I, DegreeLimit=>1, LengthLimit=>5)
      I = ideal I_*;
      elapsedTime C = minimalBetti(I, LengthLimit=>5)
    Text
      This function computes only as much of the non-minimal resolution as needed
      to compute the desired Betti numbers.  Further calls will generally not recompute
      previously computed parts of the resolution, except that if you ask for 
      a longer resolution than previously, it currently will recompute the resolution.
      This behavior might change in later releases.
    Text
      If one has already computed the non-minimal free resolution using 
      @TO FastNonminimal@, then one can use @TO [betti,Minimize]@, except that it doesn't currently
      have support for {\tt DegreeLimit} and {\tt LengthLimit}, and probably still computes more
      than is needed (it is still experimental).
   Caveat
     Only works over finite prime field.
     If the ideal or module is a non-homogeneous or multi-homogeneous object,
     then this function will result in an error.
   SeeAlso
     betti
     "OldChainComplexes :: betti(...,Minimize=>...)"
     "OldChainComplexes :: resolution"
     "OldChainComplexes :: resolution(...,FastNonminimal=>...)"
     "Complexes :: Nonminimal"
///