version 1.5, 2002/02/09 06:21:02 |
version 1.7, 2004/02/23 09:03:42 |
|
|
/* $OpenXM: OpenXM/src/kan96xx/Kan/poly3.c,v 1.4 2002/02/04 07:58:28 takayama Exp $ */ |
/* $OpenXM: OpenXM/src/kan96xx/Kan/poly3.c,v 1.6 2002/09/08 10:49:50 takayama Exp $ */ |
#include <stdio.h> |
#include <stdio.h> |
#include "datatype.h" |
#include "datatype.h" |
#include "extern2.h" |
#include "extern2.h" |
Line 31 void initT(void) { |
|
Line 31 void initT(void) { |
|
DList = (int *)sGC_malloc(sizeof(int)*Lsize*N0); |
DList = (int *)sGC_malloc(sizeof(int)*Lsize*N0); |
MList = (int *)sGC_malloc(sizeof(int)*Lsize*N0); |
MList = (int *)sGC_malloc(sizeof(int)*Lsize*N0); |
*/ |
*/ |
DList = (int *)malloc(sizeof(int)*Lsize*N0); |
DList = (int *)sGC_malloc(sizeof(int)*Lsize*N0); |
MList = (int *)malloc(sizeof(int)*Lsize*N0); |
MList = (int *)sGC_malloc(sizeof(int)*Lsize*N0); |
|
|
RList = (POLY *)sGC_malloc(sizeof(POLY)*Lsize); |
RList = (POLY *)sGC_malloc(sizeof(POLY)*Lsize); |
RListRoot = (POLY *)sGC_malloc(sizeof(POLY)*Lsize); |
RListRoot = (POLY *)sGC_malloc(sizeof(POLY)*Lsize); |
Line 98 void monomialMult_diff(e,f) |
|
Line 98 void monomialMult_diff(e,f) |
|
/* (e) * f = [Plist] monomials */ |
/* (e) * f = [Plist] monomials */ |
{ |
{ |
|
|
int n,k,c,l,q,i,m; |
int n,k,c,l,q,i,m, weightedHomogenization; |
struct coeff *a; |
struct coeff *a; |
struct monomial tmp; |
struct monomial tmp; |
struct ring *ringp; |
struct ring *ringp; |
Line 106 void monomialMult_diff(e,f) |
|
Line 106 void monomialMult_diff(e,f) |
|
|
|
tmp.ringp = ringp = f->m->ringp; |
tmp.ringp = ringp = f->m->ringp; |
n = ringp->n; c = ringp->c; l = ringp->l; m = ringp->m; |
n = ringp->n; c = ringp->c; l = ringp->l; m = ringp->m; |
|
weightedHomogenization = ringp->weightedHomogenization; |
for (k=Plist-1; k>=0; k--) { |
for (k=Plist-1; k>=0; k--) { |
/* coeff */ |
/* coeff */ |
a = coeffCopy(CList[k]); |
a = coeffCopy(CList[k]); |
Line 115 void monomialMult_diff(e,f) |
|
Line 116 void monomialMult_diff(e,f) |
|
for (i=0; i<n; i++) { |
for (i=0; i<n; i++) { |
tmp.e[i] = f->m->e[i]; |
tmp.e[i] = f->m->e[i]; |
} |
} |
if (Homogenize) { |
if ((!weightedHomogenization) && Homogenize) { |
tmp.e[0].D += EList[k]; /* homogenization. |
tmp.e[0].D += EList[k]; /* homogenization. |
e[0].D will be added later. */ |
e[0].D will be added later. */ |
} |
}else if (weightedHomogenization && Homogenize) { |
|
tmp.e[0].D += EList[k]/2 ; /* homogenization. Weight is (1,0) (special). |
|
*/ |
|
} |
|
|
/* from m to n: Differential variables. */ |
/* from m to n: Differential variables. */ |
for (i=0; i<Maxv; i++) { |
for (i=0; i<Maxv; i++) { |