source: git/Singular/matpol.h @ d3ce7de

spielwiese
Last change on this file since d3ce7de was d3ce7de, checked in by Wilfred Pohl <pohl@…>, 26 years ago
list bareiss(...); git-svn-id: file:///usr/local/Singular/svn/trunk@1884 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.6 1998-05-19 17:11:45 pohl 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);
54
55//matrix mpHomogen(matrix a, int v);
56
57void   mpMonomials(matrix c, int r, int var, matrix m);
58matrix mpCoeffs(ideal I, int var);
59/* corresponds to Maple's coeffs:
60*var has to be the number of a variable
61*/
62
63matrix mpCoeffProc (poly f, poly vars);
64/* corresponds to Macauley's coef:
65the exponent vector of vars has to contain the variables, eg 'xy';
66then the poly f is searched for monomials in x and y, these monimials
67are written to the first row of the matrix co.
68the second row of co contains the respective factors in f.
69Thus f = sum co[1,i]*co[2,i], i = 1..cols, rows equals 2. */
70void mpCoef2(poly v, poly vars, matrix *c, matrix *m);
71
72#endif
Note: See TracBrowser for help on using the repository browser.