File: res-a0-pair.hpp

package info (click to toggle)
macaulay2 1.21%2Bds-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 133,096 kB
  • sloc: cpp: 110,377; ansic: 16,306; javascript: 4,193; makefile: 3,821; sh: 3,580; lisp: 764; yacc: 590; xml: 177; python: 140; perl: 114; lex: 65; awk: 3
file content (65 lines) | stat: -rw-r--r-- 2,445 bytes parent folder | download | duplicates (4)
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
// Copyright 1996.  Michael E. Stillman

#ifndef _respair_hh_
#define _respair_hh_

#include <newdelete.hpp>
#include <monideal.hpp>

struct res2term;

// The following are the possible types of res_pairs's
enum {
  SYZ2_S_PAIR,  // Pre computation: s-pair

  SYZ2_MAYBE_MINIMAL,  // This s-pair was computed before all of the
                       // pairs in the next level were computed, meaning that
                       // this element may not correspond to a minimal syz.
                       // Instead, it may be a SYZ2_NOT_MINIMAL.
  SYZ2_MINIMAL,        // Post s-pair computation: element is minimal syzygy
  SYZ2_NOT_MINIMAL,    // Post s-pair computation: element is not minimal
  SYZ2_NOT_NEEDED      // S-pair computation for this pair cancelled
};

struct res2_pair : public our_new_delete
{
  res2_pair *next;  // Next pair in the list
  unsigned int me;  // Used for making the matrices, either minimal or not.
  unsigned int pair_num;  // A sequence number for which pair this is.
  // Used in division to determine which pair to reduce by.
  unsigned char syz_type;
  unsigned char level;
  unsigned short degree;
  unsigned int
      compare_num;  // We don't need a full 32 (or 64) bit number for this...

  res2term *syz;  // The syzygy itself, once computed
                  // Before being computed, this is the 1 or 2 term syzygy
                  // saying what the syzygy is.

  MonomialIdeal *mi;
#if 0
//   union {
//     MonomialIdeal mi;                // Monomial ideal of total monomials
//     struct {                 // Maybe: want a pointer to this...?
//       res2_pair *mi2;                // List of res_pairs having this as lead term
//       res2_pair *next_mi;    // If this is part of a list of mi2, this is the
//                              // next-link.
//       int monomial_mask;     // Do we really want this?  If so: should probably
//                              // refer to the non-total monomial.
//     }
//   } monideal;
#endif
  // The following are used only for minimalization of the resolution
  res2term *pivot_term;  // SYZ2_NOT_MINIMAL: Points into 'syz', to the
                         // term containing the constant.
                         // Is this always the last term??
                         // If so, we probably don't need this field...
};

#endif

// Local Variables:
// compile-command: "make -C $M2BUILDDIR/Macaulay2/e "
// indent-tabs-mode: nil
// End: