/usr/include/singular/singular/polys/matpol.h is in libsingular4-dev-common 1:4.1.0-p3+ds-2build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 | #ifndef MATPOL_H
#define MATPOL_H
/****************************************
* Computer Algebra System SINGULAR *
****************************************/
/*
* ABSTRACT
*/
// #include <kernel/structs.h>
#include <polys/monomials/ring.h>
// THIS IS REALLY DIRTY: ip_smatrix HAS TO BE IDENTICAL TO ip_sideal
// SO, DON'T CHANGE THE DECLARATION OF ip_smatrix
class ip_smatrix
{
public:
poly *m;
long rank;
int nrows;
int ncols;
inline int& rows() { return nrows; }
inline int& cols() { return ncols; }
#define MATROWS(i) ((i)->nrows)
#define MATCOLS(i) ((i)->ncols)
#define MATELEM(mat,i,j) ((mat)->m)[MATCOLS((mat)) * ((i)-1) + (j)-1]
};
typedef ip_smatrix * matrix;
matrix mpNew(int r, int c);
static inline matrix mp_New(int r, int c){ return mpNew(r,c); }
// matrix mpCopy(matrix a);
void mp_Delete(matrix* a, const ring r);
matrix mp_Copy(const matrix a, const ring rSrc, const ring rDst);
matrix mp_Copy(matrix a, const ring r);
// static inline matrix mp_Copy(matrix a, const ring r){ return mp_Copy(a, r, r); }
matrix mp_InitP(int r, int c, poly p, const ring R);
matrix mp_InitI(int r, int c, int v, const ring R);
matrix mp_MultI(matrix a, int f, const ring r);
matrix mp_MultP(matrix a, poly p, const ring r);
matrix pMultMp(poly p, matrix a, const ring r);
matrix mp_Add(matrix a, matrix b, const ring r);
matrix mp_Sub(matrix a, matrix b, const ring r);
matrix mp_Mult(matrix a, matrix b, const ring r);
matrix mp_Transp(matrix a, const ring r);
BOOLEAN mp_Equal(matrix a, matrix b, const ring r);
poly mp_Trace ( matrix a, const ring r);
poly TraceOfProd ( matrix a, matrix b, int n, const ring r);
// poly mp_Det (matrix m, const ring r);
matrix mp_Wedge(matrix a, int ar, const ring r);
// BOOLEAN mpJacobi(leftv res,leftv a);
// BOOLEAN mpKoszul(leftv res,leftv b/*in*/, leftv c/*ip*/, leftv id=NULL);
poly mp_DetBareiss (matrix a, const ring r);
//matrix mp_Homogen(matrix a, int v, const ring r);
void mp_Monomials(matrix c, int r, int var, matrix m, const ring R);
/// corresponds to Maple's coeffs:
/// var has to be the number of a variable
matrix mp_Coeffs(ideal I, int var, const ring r);
matrix mp_CoeffProc (poly f, poly vars, const ring r);
/// corresponds to Macauley's coef:
/// the exponent vector of vars has to contain the variables, eg 'xy';
/// then the poly f is searched for monomials in x and y, these monimials
/// are written to the first row of the matrix co.
/// the second row of co contains the respective factors in f.
/// Thus f = sum co[1,i]*co[2,i], i = 1..cols, rows equals 2.
void mp_Coef2(poly v, poly vars, matrix *c, matrix *m, const ring r);
/// for minors with Bareiss
void mp_RecMin(int, ideal, int &, matrix, int, int, poly, ideal, const ring);
void mp_MinorToResult(ideal, int &, matrix, int, int, ideal, const ring);
BOOLEAN mp_IsDiagUnit(matrix U, const ring r);
/// set spaces to zero by default
void iiWriteMatrix(matrix im, const char *n, int dim, const ring r, int spaces);
char * iiStringMatrix(matrix im, int dim, const ring r, char ch=',');
extern omBin ip_smatrix_bin;
int mp_Compare(matrix a, matrix b, const ring r);
ideal mp_Tensor(ideal A, ideal B, const ring r);
#endif/* MATPOL_H */
|