source: git/dyn_modules/syzextra/syzextra.h @ 204092

spielwiese
Last change on this file since 204092 was 204092, checked in by Oleksandr Motsak <motsak@…>, 12 years ago
moved/separated new functions related to Schreyer Syzygy computation chg: prefixed corresponding wrappers with underscore due to interpreter registratrar' general expectation
  • Property mode set to 100644
File size: 2.3 KB
Line 
1// -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2/*****************************************************************************\
3 * Computer Algebra System SINGULAR   
4\*****************************************************************************/
5/** @file syzextra.h
6 *
7 * Computation of Syzygies
8 *
9 * ABSTRACT: Computation of Syzygies due to Schreyer
10 *
11 * @author Oleksandr Motsak
12 *
13 **/
14/*****************************************************************************/
15
16#ifndef SYZEXTRA_H
17#define SYZEXTRA_H
18
19// include basic definitions
20#include "singularxx_defs.h"
21
22struct  spolyrec;
23typedef struct spolyrec    polyrec;
24typedef polyrec *          poly;
25
26struct ip_sring;
27typedef struct ip_sring *         ring;
28
29struct sip_sideal;
30typedef struct sip_sideal *       ideal;
31
32
33BEGIN_NAMESPACE_SINGULARXX    BEGIN_NAMESPACE(SYZEXTRA)
34
35poly leadmonom(const poly p, const ring r);
36
37/// return the tail of a given polynomial or vector
38/// returns NULL if input is NULL, otherwise
39/// the result is a new polynomial/vector in the ring r
40poly p_Tail(const poly p, const ring r);
41
42
43/// return the tail of a given ideal or module
44/// returns NULL if input is NULL, otherwise
45/// the result is a new ideal/module in the ring r
46/// NOTE: the resulting rank is autocorrected
47ideal id_Tail(const ideal id, const ring r);
48
49
50/// inplace sorting of the module (ideal) id wrt >_(c,ds)
51void Sort_c_ds(const ideal id, const ring r);
52
53ideal ComputeLeadingSyzygyTerms(const ideal& id, const ring r);
54
55ideal Compute2LeadingSyzygyTerms(const ideal& id, const ring r);
56
57
58poly FindReducer(poly product, poly syzterm,
59                 ideal L, ideal LS,
60                 const ring r);
61
62
63poly TraverseTail(poly multiplier, poly tail, 
64                  ideal L, ideal T, ideal LS,
65                  const ring r);
66
67poly ReduceTerm(poly multiplier, poly term4reduction, poly syztermCheck,
68                ideal L, ideal T, ideal LS, const ring r);
69
70
71
72poly SchreyerSyzygyNF(poly syz_lead, poly syz_2, ideal L, ideal T, ideal LS, const ring r);
73
74
75void ComputeSyzygy(const ideal L, const ideal T, ideal& LL, ideal& TT, const ring R);
76
77
78END_NAMESPACE               END_NAMESPACE_SINGULARXX
79
80#endif
81/* #ifndef SYZEXTRA_H */
82
83// Vi-modeline: vim: filetype=c:syntax:shiftwidth=2:tabstop=8:textwidth=0:expandtab
84
Note: See TracBrowser for help on using the repository browser.