source: git/Singular/matpol.h @ 97a7b44

spielwiese
Last change on this file since 97a7b44 was 91ffb8b, checked in by Olaf Bachmann <obachman@…>, 26 years ago
* added mpDetBareiss declarartion -- otherwise link error for mpDetBareiss in iparith.cc git-svn-id: file:///usr/local/Singular/svn/trunk@2341 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 2.0 KB
Line 
1#ifndef MATPOL_H
2#define MATPOL_H
3/****************************************
4*  Computer Algebra System SINGULAR     *
5****************************************/
6/* $Id: matpol.h,v 1.7 1998-07-16 06:44:29 obachman Exp $ */
7/*
8* ABSTRACT
9*/
10#include "structs.h"
11
12class ip_smatrix
13{
14  public:
15
16  poly *m;
17  long rank;
18  int nrows;
19  int ncols;
20
21  inline int& rows() { return nrows; }
22  inline int& cols() { return ncols; }
23
24  #define MATROWS(i) ((i)->nrows)
25  #define MATCOLS(i) ((i)->ncols)
26  #define MATELEM(mat,i,j) ((mat)->m)[MATCOLS((mat)) * ((i)-1) + (j)-1]
27};
28
29#ifdef MDEBUG
30matrix mpDBNew(int r, int c, char *f, int l);
31#define mpNew(A,B) mpDBNew(A,B,__FILE__,__LINE__)
32#else
33matrix mpNew(int r, int c);
34#endif
35matrix mpCopy (matrix a);
36matrix mpInitP(int r, int c, poly p);
37matrix mpInitI(int r, int c, int v);
38matrix mpMultI(matrix a, int f);
39matrix mpMultP(matrix a, poly p);
40matrix mpAdd(matrix a, matrix b);
41matrix mpSub(matrix a, matrix b);
42matrix mpMult(matrix a, matrix b);
43matrix mpTransp(matrix a);
44BOOLEAN mpEqual(matrix a, matrix b);
45poly mpTrace ( matrix a);
46poly TraceOfProd ( matrix a, matrix b, int n);
47
48lists mpBareiss (matrix a, BOOLEAN diagonal);
49matrix mpOneStepBareiss (matrix a, poly *H, int *r, int *c);
50poly mpDet (matrix m);
51matrix mpWedge(matrix a, int ar);
52BOOLEAN mpJacobi(leftv res,leftv a);
53BOOLEAN mpKoszul(leftv res,leftv b/*in*/, leftv c/*ip*/, leftv id=NULL);
54poly mpDetBareiss (matrix a);
55
56//matrix mpHomogen(matrix a, int v);
57
58void   mpMonomials(matrix c, int r, int var, matrix m);
59matrix mpCoeffs(ideal I, int var);
60/* corresponds to Maple's coeffs:
61*var has to be the number of a variable
62*/
63
64matrix mpCoeffProc (poly f, poly vars);
65/* corresponds to Macauley's coef:
66the exponent vector of vars has to contain the variables, eg 'xy';
67then the poly f is searched for monomials in x and y, these monimials
68are written to the first row of the matrix co.
69the second row of co contains the respective factors in f.
70Thus f = sum co[1,i]*co[2,i], i = 1..cols, rows equals 2. */
71void mpCoef2(poly v, poly vars, matrix *c, matrix *m);
72
73#endif
Note: See TracBrowser for help on using the repository browser.