My Project  debian-1:4.1.1-p2+ds-4build3
matpol.h
Go to the documentation of this file.
1 #ifndef MATPOL_H
2 #define MATPOL_H
3 /****************************************
4 * Computer Algebra System SINGULAR *
5 ****************************************/
6 /*
7 * ABSTRACT
8 */
9 
10 #include "polys/monomials/ring.h"
11 
12 // THIS IS REALLY DIRTY: ip_smatrix HAS TO BE IDENTICAL TO ip_sideal
13 // SO, DON'T CHANGE THE DECLARATION OF ip_smatrix
15 {
16  public:
17 
18  poly *m;
19  long rank;
20  int nrows;
21  int ncols;
22 
23  inline int& rows() { return nrows; }
24  inline int& cols() { return ncols; }
25 
26  #define MATROWS(i) ((i)->nrows)
27  #define MATCOLS(i) ((i)->ncols)
28  #define MATELEM(mat,i,j) ((mat)->m)[MATCOLS((mat)) * ((i)-1) + (j)-1]
29 };
30 
31 typedef ip_smatrix * matrix;
32 
33 matrix mpNew(int r, int c);
34 static inline matrix mp_New(int r, int c){ return mpNew(r,c); }
35 
36 // matrix mpCopy(matrix a);
37 void mp_Delete(matrix* a, const ring r);
38 matrix mp_Copy(const matrix a, const ring rSrc, const ring rDst);
39 
40 matrix mp_Copy(matrix a, const ring r);
41 // static inline matrix mp_Copy(matrix a, const ring r){ return mp_Copy(a, r, r); }
42 
43 matrix mp_InitP(int r, int c, poly p, const ring R);
44 matrix mp_InitI(int r, int c, int v, const ring R);
45 matrix mp_MultI(matrix a, int f, const ring r);
46 matrix mp_MultP(matrix a, poly p, const ring r);
47 matrix pMultMp(poly p, matrix a, const ring r);
48 matrix mp_Add(matrix a, matrix b, const ring r);
49 matrix mp_Sub(matrix a, matrix b, const ring r);
50 matrix mp_Mult(matrix a, matrix b, const ring r);
51 matrix mp_Transp(matrix a, const ring r);
52 BOOLEAN mp_Equal(matrix a, matrix b, const ring r);
53 poly mp_Trace ( matrix a, const ring r);
54 poly TraceOfProd ( matrix a, matrix b, int n, const ring r);
55 
56 // poly mp_Det (matrix m, const ring r);
57 matrix mp_Wedge(matrix a, int ar, const ring r);
58 
59 // BOOLEAN mpJacobi(leftv res,leftv a);
60 // BOOLEAN mpKoszul(leftv res,leftv b/*in*/, leftv c/*ip*/, leftv id=NULL);
61 
62 poly mp_DetBareiss (matrix a, const ring r);
63 
64 //matrix mp_Homogen(matrix a, int v, const ring r);
65 
66 void mp_Monomials(matrix c, int r, int var, matrix m, const ring R);
67 
68 /// corresponds to Maple's coeffs:
69 /// var has to be the number of a variable
70 matrix mp_Coeffs(ideal I, int var, const ring r);
71 
72 matrix mp_CoeffProc (poly f, poly vars, const ring r);
73 /// corresponds to Macauley's coef:
74 /// the exponent vector of vars has to contain the variables, eg 'xy';
75 /// then the poly f is searched for monomials in x and y, these monimials
76 /// are written to the first row of the matrix co.
77 /// the second row of co contains the respective factors in f.
78 /// Thus f = sum co[1,i]*co[2,i], i = 1..cols, rows equals 2.
79 void mp_Coef2(poly v, poly vars, matrix *c, matrix *m, const ring r);
80 
81 /// for minors with Bareiss
82 void mp_RecMin(int, ideal, int &, matrix, int, int, poly, ideal, const ring);
83 void mp_MinorToResult(ideal, int &, matrix, int, int, ideal, const ring);
84 
85 BOOLEAN mp_IsDiagUnit(matrix U, const ring r);
86 
87 /// set spaces to zero by default
88 void iiWriteMatrix(matrix im, const char *n, int dim, const ring r, int spaces);
89 
90 char * iiStringMatrix(matrix im, int dim, const ring r, char ch=',');
91 
92 extern omBin ip_smatrix_bin;
93 
94 int mp_Compare(matrix a, matrix b, const ring r);
95 
96 ideal mp_Tensor(ideal A, ideal B, const ring r);
97 #endif/* MATPOL_H */
dim
int dim(ideal I, ring r)
Definition: tropicalStrategy.cc:23
matrix
ip_smatrix * matrix
Definition: matpol.h:31
mp_DetBareiss
poly mp_DetBareiss(matrix a, const ring r)
returns the determinant of the matrix m; uses Bareiss algorithm
Definition: matpol.cc:1576
mp_Delete
void mp_Delete(matrix *a, const ring r)
Definition: matpol.cc:780
iiWriteMatrix
void iiWriteMatrix(matrix im, const char *n, int dim, const ring r, int spaces)
set spaces to zero by default
Definition: matpol.cc:734
ip_smatrix
Definition: matpol.h:15
mp_CoeffProc
matrix mp_CoeffProc(poly f, poly vars, const ring r)
Definition: matpol.cc:401
f
FILE * f
Definition: checklibs.c:9
mp_MinorToResult
void mp_MinorToResult(ideal, int &, matrix, int, int, ideal, const ring)
entries of a are minors and go to result (only if not in R)
Definition: matpol.cc:1407
mp_IsDiagUnit
BOOLEAN mp_IsDiagUnit(matrix U, const ring r)
Definition: matpol.cc:716
mp_Coeffs
matrix mp_Coeffs(ideal I, int var, const ring r)
corresponds to Maple's coeffs: var has to be the number of a variable
Definition: matpol.cc:315
mp_RecMin
void mp_RecMin(int, ideal, int &, matrix, int, int, poly, ideal, const ring)
for minors with Bareiss
Definition: matpol.cc:1503
mp_InitP
matrix mp_InitP(int r, int c, poly p, const ring R)
make it a p * unit matrix
Definition: matpol.cc:112
mp_Copy
matrix mp_Copy(const matrix a, const ring rSrc, const ring rDst)
copies matrix a from rSrc into rDst
Definition: matpol.cc:84
pMultMp
matrix pMultMp(poly p, matrix a, const ring r)
Definition: matpol.cc:164
mp_Sub
matrix mp_Sub(matrix a, matrix b, const ring r)
Definition: matpol.cc:195
mp_MultI
matrix mp_MultI(matrix a, int f, const ring r)
c = f*a
Definition: matpol.cc:134
ip_smatrix::cols
int & cols()
Definition: matpol.h:26
b
CanonicalForm b
Definition: cfModGcd.cc:4044
mp_MultP
matrix mp_MultP(matrix a, poly p, const ring r)
multiply a matrix 'a' by a poly 'p', destroy the args
Definition: matpol.cc:147
ip_smatrix::nrows
int nrows
Definition: matpol.h:22
mp_Monomials
void mp_Monomials(matrix c, int r, int var, matrix m, const ring R)
Definition: matpol.cc:364
ip_smatrix::rows
int & rows()
Definition: matpol.h:25
ip_smatrix_bin
omBin ip_smatrix_bin
mp_Transp
matrix mp_Transp(matrix a, const ring r)
Definition: matpol.cc:256
BOOLEAN
int BOOLEAN
Definition: auxiliary.h:85
mp_InitI
matrix mp_InitI(int r, int c, int v, const ring R)
make it a v * unit matrix
Definition: matpol.cc:128
iiStringMatrix
char * iiStringMatrix(matrix im, int dim, const ring r, char ch=',')
Definition: matpol.cc:755
ip_smatrix::m
poly * m
Definition: matpol.h:20
mp_Wedge
matrix mp_Wedge(matrix a, int ar, const ring r)
Definition: matpol.cc:1651
mp_New
static matrix mp_New(int r, int c)
Definition: matpol.h:34
mp_Coef2
void mp_Coef2(poly v, poly vars, matrix *c, matrix *m, const ring r)
corresponds to Macauley's coef: the exponent vector of vars has to contain the variables,...
Definition: matpol.cc:503
ring.h
omBin
omBin_t * omBin
Definition: omStructs.h:12
B
b *CanonicalForm B
Definition: facBivar.cc:52
mp_Tensor
ideal mp_Tensor(ideal A, ideal B, const ring r)
Definition: matpol.cc:1748
mp_Compare
int mp_Compare(matrix a, matrix b, const ring r)
Definition: matpol.cc:565
m
int m
Definition: cfEzgcd.cc:121
mp_Mult
matrix mp_Mult(matrix a, matrix b, const ring r)
Definition: matpol.cc:212
ip_smatrix::rank
long rank
Definition: matpol.h:21
mp_Trace
poly mp_Trace(matrix a, const ring r)
Definition: matpol.cc:277
R
#define R
Definition: sirandom.c:26
TraceOfProd
poly TraceOfProd(matrix a, matrix b, int n, const ring r)
Definition: matpol.cc:291
v
const Variable & v
< [in] a sqrfree bivariate poly
Definition: facBivar.h:37
ip_smatrix::ncols
int ncols
Definition: matpol.h:23
p
int p
Definition: cfModGcd.cc:4019
mp_Equal
BOOLEAN mp_Equal(matrix a, matrix b, const ring r)
Definition: matpol.cc:584
mp_Add
matrix mp_Add(matrix a, matrix b, const ring r)
Definition: matpol.cc:178
A
#define A
Definition: sirandom.c:23
mpNew
matrix mpNew(int r, int c)
create a r x c zero-matrix
Definition: matpol.cc:36