version 1.19, 2005/06/16 06:54:55 |
version 1.21, 2005/07/03 11:08:53 |
|
|
/* $OpenXM: OpenXM/src/kan96xx/Kan/kanExport1.c,v 1.18 2005/06/16 05:07:23 takayama Exp $ */ |
/* $OpenXM: OpenXM/src/kan96xx/Kan/kanExport1.c,v 1.20 2005/06/16 08:40:04 takayama Exp $ */ |
#include <stdio.h> |
#include <stdio.h> |
#include "datatype.h" |
#include "datatype.h" |
#include "stackm.h" |
#include "stackm.h" |
Line 19 struct object DegreeShiftD = OINIT; |
|
Line 19 struct object DegreeShiftD = OINIT; |
|
int DegreeShiftD_size = 0; |
int DegreeShiftD_size = 0; |
int *DegreeShiftD_vec = NULL; |
int *DegreeShiftD_vec = NULL; |
|
|
|
static struct object paddingVector(struct object ob, int table[], int m); |
|
static struct object unitVector(int pos, int size,struct ring *r); |
|
|
/** :kan, :ring */ |
/** :kan, :ring */ |
struct object Kreduction(f,set) |
struct object Kreduction(f,set) |
struct object f; |
struct object f; |
Line 88 struct object Kgroebner(ob) |
|
Line 91 struct object Kgroebner(ob) |
|
int sdflag = 0; |
int sdflag = 0; |
int forceReduction = 0; |
int forceReduction = 0; |
int reduceOnly = 0; |
int reduceOnly = 0; |
int gbCheck = 0; |
int gbCheck = 0; /* see @s/2005/06/16-note.pdf */ |
|
|
int ob1Size, ob2Size, noZeroEntry; |
int ob1Size, ob2Size, noZeroEntry; |
int *ob1ToOb2; |
int *ob1ToOb2; |
Line 104 struct object Kgroebner(ob) |
|
Line 107 struct object Kgroebner(ob) |
|
struct object newB = OINIT; |
struct object newB = OINIT; |
struct object orgC = OINIT; |
struct object orgC = OINIT; |
struct object newC = OINIT; |
struct object newC = OINIT; |
static struct object paddingVector(struct object ob, int table[], int m); |
struct object paddingVector(struct object ob, int table[], int m); |
static struct object unitVector(int pos, int size,struct ring *r); |
struct object unitVector(int pos, int size,struct ring *r); |
extern struct ring *CurrentRingp; |
extern struct ring *CurrentRingp; |
|
|
StopDegree = 0x7fff; |
StopDegree = 0x7fff; |
Line 122 struct object Kgroebner(ob) |
|
Line 125 struct object Kgroebner(ob) |
|
if (ob2.tag != Sarray) { |
if (ob2.tag != Sarray) { |
errorKan1("%s\n","Kgroebner(): The options must be given by an array."); |
errorKan1("%s\n","Kgroebner(): The options must be given by an array."); |
} |
} |
|
/* Note: If you add a new option, change /configureGroebnerOption, too */ |
for (i=0; i<getoaSize(ob2); i++) { |
for (i=0; i<getoaSize(ob2); i++) { |
ob2c = getoa(ob2,i); |
ob2c = getoa(ob2,i); |
if (ob2c.tag == Sdollar) { |
if (ob2c.tag == Sdollar) { |
Line 304 struct object Kgroebner(ob) |
|
Line 308 struct object Kgroebner(ob) |
|
} |
} |
|
|
/* To handle zero entries in the input. */ |
/* To handle zero entries in the input. */ |
|
rob=KsetAttribute(rob,KpoString("gb"),KpoInteger(grG->gb)); |
|
putoa(rob,0,KsetAttribute(getoa(rob,0),KpoString("gb"),KpoInteger(grG->gb))); |
if (noZeroEntry) { |
if (noZeroEntry) { |
rob=KsetAttribute(rob,KpoString("gb"),KpoInteger(grG->gb)); |
|
return(rob); |
return(rob); |
} |
} |
method = getoaSize(rob); |
method = getoaSize(rob); |
switch(method) { |
switch(method) { |
case 1: |
case 1: |
rob=KsetAttribute(rob,KpoString("gb"),KpoInteger(grG->gb)); |
|
return(rob); |
return(rob); |
break; |
break; |
case 2: |
case 2: |