version 1.1, 1999/10/08 02:12:01 |
version 1.5, 2005/07/03 11:08:54 |
|
|
|
/* $OpenXM: OpenXM/src/kan96xx/Kan/poly.c,v 1.4 2004/09/13 11:24:11 takayama Exp $ */ |
#include <stdio.h> |
#include <stdio.h> |
|
#include <stdlib.h> |
#include "datatype.h" |
#include "datatype.h" |
#include "stackm.h" |
#include "stackm.h" |
#include "extern.h" |
#include "extern.h" |
Line 25 void KinitKan(void) { |
|
Line 27 void KinitKan(void) { |
|
int i; |
int i; |
static char *smallx[] = {"x","t"}; |
static char *smallx[] = {"x","t"}; |
static char *smalld[] = {"h","T"}; |
static char *smalld[] = {"h","T"}; |
/* t x T h */ |
/* t x T h */ |
static int smallOrder[] = { 1, 0, 0, 0, |
static int smallOrder[] = { 1, 0, 0, 0, |
0, 1, 0, 0, |
0, 1, 0, 0, |
0, 0, 1, 0, |
0, 0, 1, 0, |
Line 53 void KinitKan(void) { |
|
Line 55 void KinitKan(void) { |
|
SmallRing.gbListTower = NULL; |
SmallRing.gbListTower = NULL; |
SmallRing.outputOrder = outputOrderForSmallRing; |
SmallRing.outputOrder = outputOrderForSmallRing; |
SmallRing.name = "SmallRingp"; |
SmallRing.name = "SmallRingp"; |
|
SmallRing.partialEcart = 0; |
|
|
CurrentRingp = &SmallRing; |
CurrentRingp = &SmallRing; |
initSyzRingp(); |
initSyzRingp(); |
Line 63 void KinitKan(void) { |
|
Line 66 void KinitKan(void) { |
|
|
|
#ifndef NOGC |
#ifndef NOGC |
/* initialize MPZ */ |
/* initialize MPZ */ |
mp_set_memory_functions(sGC_malloc,sGC_realloc2,sGC_free2); |
mp_set_memory_functions(sGC_malloc,sGC_realloc2,sGC_free2); |
#endif |
#endif |
|
|
/* Msize is 8 on SUN gcc */ |
/* Msize is 8 on SUN gcc */ |
Line 96 void sGC_free2(void *p,size_t size) |
|
Line 99 void sGC_free2(void *p,size_t size) |
|
|
|
|
|
MONOMIAL newMonomial(ringp) |
MONOMIAL newMonomial(ringp) |
struct ring *ringp; |
struct ring *ringp; |
{ |
{ |
MONOMIAL f; |
MONOMIAL f; |
extern int Msize; |
extern int Msize; |
Line 115 struct ring *ringp; |
|
Line 118 struct ring *ringp; |
|
|
|
|
|
MONOMIAL monomialCopy(m) |
MONOMIAL monomialCopy(m) |
MONOMIAL m; |
MONOMIAL m; |
{ |
{ |
extern int Msize; |
extern int Msize; |
MONOMIAL f; |
MONOMIAL f; |
Line 152 MP_INT *newMP_INT() { |
|
Line 155 MP_INT *newMP_INT() { |
|
} |
} |
|
|
POLY newCell(c,mon) |
POLY newCell(c,mon) |
struct coeff *c; |
struct coeff *c; |
MONOMIAL mon; |
MONOMIAL mon; |
{ |
{ |
POLY ff; |
POLY ff; |
ff = (POLY) sGC_malloc(sizeof(struct listPoly)); |
ff = (POLY) sGC_malloc(sizeof(struct listPoly)); |
|
|
|
|
/* constructors */ |
/* constructors */ |
POLY cxx(c,i,k,ringp) |
POLY cxx(c,i,k,ringp) |
int c,i,k; |
int c,i,k; |
struct ring *ringp; |
struct ring *ringp; |
/* c x_i^k where p is the characteristic. */ |
/* c x_i^k where p is the characteristic. */ |
/* New cell, monomial and coeff. */ |
/* New cell, monomial and coeff. */ |
{ |
{ |
POLY f; |
POLY f; |
int p; |
int p; |
Line 198 struct ring *ringp; |
|
Line 201 struct ring *ringp; |
|
} |
} |
|
|
POLY bxx(c,i,k,ringp) |
POLY bxx(c,i,k,ringp) |
MP_INT *c; |
MP_INT *c; |
int i,k; |
int i,k; |
struct ring *ringp; |
struct ring *ringp; |
/* c x_i^k. c is not copied. */ |
/* c x_i^k. c is not copied. */ |
{ |
{ |
/* new cell, monomial, coeff. MP_INT c is not copied. */ |
/* new cell, monomial, coeff. MP_INT c is not copied. */ |
POLY f; |
POLY f; |
int p; |
int p; |
p = ringp->p; |
p = ringp->p; |
Line 228 struct ring *ringp; |
|
Line 231 struct ring *ringp; |
|
} |
} |
|
|
POLY cdd(c,i,k,ringp) |
POLY cdd(c,i,k,ringp) |
int c,i,k; |
int c,i,k; |
struct ring *ringp; |
struct ring *ringp; |
/* c D_i^k where p is the characteristic. */ |
/* c D_i^k where p is the characteristic. */ |
/* New cell, monomial and coeff. */ |
/* New cell, monomial and coeff. */ |
{ |
{ |
POLY f; |
POLY f; |
int p; |
int p; |
Line 262 struct ring *ringp; |
|
Line 265 struct ring *ringp; |
|
|
|
|
|
POLY pCopy(f) |
POLY pCopy(f) |
POLY f; |
POLY f; |
{ |
{ |
POLY node; |
POLY node; |
struct listPoly nod; |
struct listPoly nod; |
|
|
} |
} |
|
|
POLY pcCopy(f) |
POLY pcCopy(f) |
POLY f; |
POLY f; |
{ |
{ |
|
|
POLY node; |
POLY node; |
|
|
} |
} |
|
|
POLY pmCopy(f) |
POLY pmCopy(f) |
POLY f; |
POLY f; |
{ |
{ |
POLY node; |
POLY node; |
struct listPoly nod; |
struct listPoly nod; |
|
|
} |
} |
|
|
POLY pcmCopy(f) |
POLY pcmCopy(f) |
POLY f; |
POLY f; |
{ |
{ |
POLY node; |
POLY node; |
struct listPoly nod; |
struct listPoly nod; |
|
|
} |
} |
|
|
POLY head(f) |
POLY head(f) |
POLY f; |
POLY f; |
{ |
{ |
if (f == ZERO) return(f); |
if (f == ZERO) return(f); |
else { |
else { |
|
|
} |
} |
|
|
void errorPoly(str) |
void errorPoly(str) |
char *str; |
char *str; |
{ |
{ |
fprintf(stderr,"Error(poly.c): %s\n",str); |
fprintf(stderr,"Error(poly.c): %s\n",str); |
exit(20); |
exit(20); |
} |
} |
|
|
void warningPoly(str) |
void warningPoly(str) |
char *str; |
char *str; |
{ |
{ |
fprintf(stderr,"Warning(poly.c): %s\n",str); |
fprintf(stderr,"Warning(poly.c): %s\n",str); |
} |
} |