 |
My Project
debian-1:4.1.1-p2+ds-4build3
|
Go to the documentation of this file.
32 static poly
mp_Exdiv ( poly
m, poly d, poly vars,
const ring);
33 static poly
mp_Select (poly fro, poly what,
const ring);
51 size_t s=((size_t)r)*((size_t)c)*
sizeof(poly);
70 for (
i=
m*n-1;
i>=0;
i--)
93 for (
i=
m*n-1;
i>=0;
i--)
115 int i=
si_min(r,c), n = c*(
i-1)+
i-1, inc = c+1;
140 for (
k=
m*n-1;
k>0;
k--)
152 for (
k=
m*n-1;
k>0;
k--)
169 for (
k=
m*n-1;
k>0;
k--)
181 if ((n !=
b->nrows) || (
m !=
b->ncols))
190 for (
k=
m*n-1;
k>=0;
k--)
198 if ((n !=
b->nrows) || (
m !=
b->ncols))
207 for (
k=
m*n-1;
k>=0;
k--)
243 if ( (*cij)==
NULL) (*cij)=
s;
483 static poly
mp_Exdiv ( poly
m, poly d, poly vars,
const ring
R)
617 if (p1==
NULL)
return p2;
618 if (p2==
NULL)
return p1;
709 for (
i=lr-1;
i>=0;
i--)
740 for (
i=0;
i<=ii;
i++)
742 for (
j=0;
j<=jj;
j++)
745 Print(
"%-*.*s",spaces,spaces,
" ");
747 else if (
dim == 1)
Print(
"%s[%u]=",n,
j+1);
776 s[strlen(
s)- (
dim > 1 ? 2 : 1)]=
'\0';
1013 while (
qcol[j2] !=
j) j2++;
1034 while (
qrow[i2] !=
i) i2++;
1062 int i,
j, iopt, jopt;
1063 float sum, f1, f2, fo, r, ro, lp;
1064 float *dr = C->
wrow, *dc = C->
wcol;
1113 f1 = ro * (dc[
j]-lp);
1116 f2 = lp * (sum - ro - dc[
j]);
1146 poly piv, elim, q1, q2, *
ap, *a;
1172 else if (a[jj] !=
NULL)
1210 for (
i=r->N;
i>0;
i--)
1242 for (
i=lr-1;
i>=0;
i--)
1251 if ((f2!=0.0) && (f2<f1))
1266 poly* a1 = &a2[a->
ncols*(pos-1)];
1268 a2 = &a2[a->
ncols*(lr-1)];
1269 for (
j=
lc-1;
j>=0;
j--)
1302 q1 = &(a->
m)[(lr-1)*a->
ncols];
1303 for (
j=
lc-1;
j>=0;
j--)
1324 poly* a1 = &a2[pos-1];
1352 poly *
b = a0->
m, *
x = re->
m;
1353 poly piv, elim, q1, *
ap, *a, *q;
1358 for(
j=c-1;
j>=0;
j--)
1360 for(
i=r-1;
i>=0;
i--)
1367 for (
j=c-1;
j>=0;
j--)
1391 for (
j=c-1;
j>=0;
j--)
1408 ideal
R,
const ring)
1416 for (
i=r-1;
i>=0;
i--)
1425 for (
i=r-1;
i>=0;
i--)
1504 poly barDiv, ideal
R,
const ring r)
1507 int kr=lr-1,kc=
lc-1;
1654 int *rowchoise,*colchoise;
1663 rowchoise=(
int *)
omAlloc(ar*
sizeof(
int));
1664 colchoise=(
int *)
omAlloc(ar*
sizeof(
int));
1675 for (
i=1;
i<=ar;
i++)
1677 for (
j=1;
j<=ar;
j++)
1693 for (
i=1;
i<=ar;
i++)
1713 for(
int i=0;
i<
l;
i++)
1725 for(
int j=0;
j<q;
j++)
1756 poly *a=(poly*)
omAlloc(
m*
sizeof(poly));
1757 for(
int i=0;
i<n;
i++)
1759 memset(a,0,
m*
sizeof(poly));
1761 for(
int j=0;
j<
m;
j++)
static int si_min(const int a, const int b)
void StringAppendS(const char *st)
static long p_GetExp(const poly p, const unsigned long iBitmask, const int VarOffset)
get a single variable exponent @Note: the integer VarOffset encodes:
void p_Normalize(poly p, const ring r)
void p_Write0(poly p, ring lmRing, ring tailRing)
matrix mp_CoeffProc(poly f, poly vars, const ring R)
static int mp_PivBar(matrix a, int lr, int lc, const ring r)
#define MATELEM(mat, i, j)
static ideal mp_MultAndShift(poly f, ideal B, int s, const ring r)
void mpToIntvec(intvec *)
int mpPivotBareiss(row_col_weight *)
matrix mp_Coeffs(ideal I, int var, const ring R)
corresponds to Maple's coeffs: var has to be the number of a variable
poly mp_Trace(matrix a, const ring R)
void pEnlargeSet(poly **p, int l, int increment)
static void mp_ElimBar(matrix a0, matrix re, poly div, int lr, int lc, const ring R)
static poly p_Head(poly p, const ring r)
void mpColWeight(float *)
static poly p_Neg(poly p, const ring r)
static poly mp_Select(poly fro, poly what, const ring)
static poly mp_Exdiv(poly m, poly d, poly vars, const ring)
static int mp_PrepareRow(matrix a, int lr, int lc, const ring R)
matrix mp_InitP(int r, int c, poly p, const ring R)
make it a p * unit matrix
void idGetNextChoise(int r, int end, BOOLEAN *endch, int *choise)
#define __p_GetComp(p, r)
int mpPivotRow(row_col_weight *, int)
void mp_RecMin(int ar, ideal result, int &elems, matrix a, int lr, int lc, poly barDiv, ideal R, const ring r)
produces recursively the ideal of all arxar-minors of a
static void mp_PartClean(matrix a, int lr, int lc, const ring R)
void mpRowWeight(float *)
ideal mp_Tensor(ideal A, ideal B, const ring r)
void iiWriteMatrix(matrix im, const char *n, int dim, const ring r, int spaces)
set spaces to zero by default
static void mpFinalClean(matrix a)
static unsigned long p_SetExp(poly p, const unsigned long e, const unsigned long iBitmask, const int VarOffset)
set a single variable exponent @Note: VarOffset encodes the position in p->exp
static unsigned pLength(poly a)
void mp_MinorToResult(ideal result, int &elems, matrix a, int r, int c, ideal R, const ring)
entries of a are minors and go to result (only if not in R)
static void mpSwapCol(matrix a, int pos, int lr, int lc)
for(int i=0;i<=n;i++) degsf[i]
static poly p_Copy(poly p, const ring r)
returns a copy of p
static void mpReplace(int j, int n, int &sign, int *perm)
static void p_DecomposeComp(poly p, poly *a, int l, const ring r)
static short rVar(const ring r)
#define rVar(r) (r->N)
BOOLEAN rHasLocalOrMixedOrdering(const ring r)
void id_Delete(ideal *h, ring r)
deletes an ideal/module/matrix
poly p_Sub(poly p1, poly p2, const ring r)
matrix mp_Wedge(matrix a, int ar, const ring R)
#define omFreeSize(addr, size)
static int p_Cmp(poly p1, poly p2, ring r)
#define omfreeSize(addr, size)
matrix mp_Transp(matrix a, const ring R)
matrix mp_MultI(matrix a, int f, const ring R)
c = f*a
poly sm_MultDiv(poly a, poly b, const poly c, const ring R)
static int mp_PreparePiv(matrix a, int lr, int lc, const ring r)
static void p_LmDelete(poly p, const ring r)
void p_String0(poly p, ring lmRing, ring tailRing)
print p according to ShortOut in lmRing & tailRing
static poly pp_Mult_qq(poly p, poly q, const ring r)
void p_Write(poly p, ring lmRing, ring tailRing)
matrix pMultMp(poly p, matrix a, const ring R)
int p_Compare(const poly a, const poly b, const ring R)
void sm_SpecialPolyDiv(poly a, poly b, const ring R)
void mp_Delete(matrix *a, const ring r)
static BOOLEAN p_IsUnit(const poly p, const ring r)
matrix mpNew(int r, int c)
create a r x c zero-matrix
void p_Shift(poly *p, int i, const ring r)
shifts components of the vector p by i
static void mpSwapRow(matrix a, int pos, int lr, int lc)
void mp_Coef2(poly v, poly mon, matrix *c, matrix *m, const ring R)
corresponds to Macauley's coef: the exponent vector of vars has to contain the variables,...
matrix mp_InitI(int r, int c, int v, const ring R)
make it a v * unit matrix
matrix mp_Mult(matrix a, matrix b, const ring R)
static void p_Delete(poly *p, const ring r)
static poly p_Add_q(poly p, poly q, const ring r)
BOOLEAN p_EqualPolys(poly p1, poly p2, const ring r)
void StringSetS(const char *st)
matrix mp_MultP(matrix a, poly p, const ring R)
multiply a matrix 'a' by a poly 'p', destroy the args
static int si_max(const int a, const int b)
BOOLEAN mp_IsDiagUnit(matrix U, const ring R)
void Werror(const char *fmt,...)
void idInitChoise(int r, int beg, int end, BOOLEAN *endch, int *choise)
ideal idInit(int idsize, int rank)
initialise an ideal / module
void p_Vec2Polys(poly v, poly **p, int *len, const ring r)
matrix mp_Add(matrix a, matrix b, const ring R)
void mp_Monomials(matrix c, int r, int var, matrix m, const ring R)
BOOLEAN mp_Equal(matrix a, matrix b, const ring R)
static unsigned long p_SetComp(poly p, unsigned long c, ring r)
static void p_Setm(poly p, const ring r)
poly mp_DetBareiss(matrix a, const ring r)
returns the determinant of the matrix m; uses Bareiss algorithm
const Variable & v
< [in] a sqrfree bivariate poly
static BOOLEAN p_IsConstant(const poly p, const ring r)
const CanonicalForm int s
int status int void size_t count
static void mp_AddSubMat(ideal res, ideal sm, int col, const ring r)
poly p_ISet(long i, const ring r)
returns the poly representing the integer i
static poly p_Mult_q(poly p, poly q, const ring r)
static float mp_PolyWeight(poly p, const ring r)
static number & pGetCoeff(poly p)
return an alias to the leading coefficient of p assumes that p != NULL NOTE: not copy
int mp_Compare(matrix a, matrix b, const ring R)
poly prCopyR_NoSort(poly p, ring src_r, ring dest_r)
static FORCE_INLINE int n_Size(number n, const coeffs r)
return a non-negative measure for the complexity of n; return 0 only when n represents zero; (used fo...
matrix mp_Copy(matrix a, const ring r)
copies matrix a (from ring r to r)
poly TraceOfProd(matrix a, matrix b, int n, const ring R)
#define omFreeBin(addr, bin)
static poly p_Insert(poly p1, poly p2, const ring R)
matrix mp_Sub(matrix a, matrix b, const ring R)
static poly pReverse(poly p)
static int mp_PivRow(matrix a, int lr, int lc, const ring r)
void mpSetElem(poly, int, int)
char * iiStringMatrix(matrix im, int dim, const ring r, char ch)