| version 1.1, 1999/10/08 02:12:01 |
version 1.31, 2005/06/09 05:46:57 |
|
|
| |
/* $OpenXM: OpenXM/src/kan96xx/Kan/extern.h,v 1.30 2004/09/23 12:20:52 takayama Exp $ */ |
| /*********** global variables for module stackmachine***************/ |
/*********** global variables for module stackmachine***************/ |
| extern int VerboseStack; |
extern int VerboseStack; |
| extern int DebugStack; |
extern int DebugStack; |
| extern FILE *Fstack; |
extern FILE *Fstack; |
| |
#if defined(__CYGWIN__) |
| |
extern sigjmp_buf EnvOfStackMachine; |
| |
#else |
| extern jmp_buf EnvOfStackMachine; |
extern jmp_buf EnvOfStackMachine; |
| |
#endif |
| extern struct object NullObject; |
extern struct object NullObject; |
| extern struct object NoObject; |
extern struct object NoObject; |
| extern int Lookup[TYPES][TYPES]; |
extern int Lookup[TYPES][TYPES]; |
| Line 60 void printObjectArray(struct object ob,int nl,FILE *fp |
|
| Line 65 void printObjectArray(struct object ob,int nl,FILE *fp |
|
| /* stackmachine.c misc*/ |
/* stackmachine.c misc*/ |
| void scanner(void); |
void scanner(void); |
| void ctrlC(int sig); |
void ctrlC(int sig); |
| |
void cancelAlarm(); |
| int executeToken(struct tokens token); |
int executeToken(struct tokens token); |
| int executePrimitive(struct object ob); |
int executePrimitive(struct object ob); |
| int isLiteral(char *str); |
int isLiteral(char *str); |
| void lockCtrlCForOx(); |
void lockCtrlCForOx(); |
| void unlockCtrlCForOx(); |
void unlockCtrlCForOx(); |
| void restoreCtrlCForOx(); |
void restoreCtrlCForOx(); |
| |
int executeExecutableArray(struct object ob,char *fname,int withGotoP); |
| |
|
| /* stackmachine.c export */ |
/* stackmachine.c export */ |
| int KSdefineMacros(void); |
int KSdefineMacros(void); |
| Line 74 void KSpush(struct object ob); |
|
| Line 81 void KSpush(struct object ob); |
|
| char * KSstringPop(void); |
char * KSstringPop(void); |
| int KSstackPointer(void); |
int KSstackPointer(void); |
| struct object KSdupErrors(void); |
struct object KSdupErrors(void); |
| |
struct object KSpeek(int k); |
| |
|
| /* stackmachine.c context */ |
/* stackmachine.c context */ |
| struct context *newContext0(struct context *super,char *name); |
struct context *newContext0(struct context *super,char *name); |
| Line 83 void KsetContext(struct object contextobj); |
|
| Line 91 void KsetContext(struct object contextobj); |
|
| void contextControl(actionOfContextControl ctl); |
void contextControl(actionOfContextControl ctl); |
| struct object getSuperContext(struct object contextObj) ; |
struct object getSuperContext(struct object contextObj) ; |
| |
|
| |
/* stackmachine.c back-trace */ |
| |
void tracePushName(char *s); |
| |
void traceClearStack(void); |
| |
char *tracePopName(void); |
| |
char *traceShowStack(void); |
| |
|
| /* kclass.c */ |
/* kclass.c */ |
| int initClassDataBase(); |
int initClassDataBase(); |
| void fprintClass(FILE *fp,struct object ob); |
void fprintClass(FILE *fp,struct object ob); |
| Line 115 struct object *cdr(struct object *list); |
|
| Line 129 struct object *cdr(struct object *list); |
|
| void printObjectList(struct object *op); |
void printObjectList(struct object *op); |
| int memberQ(struct object *list1,struct object list2); |
int memberQ(struct object *list1,struct object list2); |
| |
|
| |
struct object KvJoin(struct object listo1,struct object listo2); |
| |
struct object Kcar(struct object listo); |
| |
struct object Kcdr(struct object listo); |
| |
struct object KlistToArray(struct object listo); |
| |
struct object KarrayToList(struct object ob); |
| |
|
| /* list:conversion */ |
/* list:conversion */ |
| struct object listToArray(struct object *op); |
struct object listToArray(struct object *op); |
| struct object *arrayToList(struct object ob); |
struct object *arrayToList(struct object ob); |
| |
struct object newByteArray(int size,struct object obj); |
| |
struct object newByteArrayFromStr(char *s,int size); |
| |
struct object byteArrayToArray(struct object obj); |
| |
|
| /* kanExport0.c */ |
/* kanExport0.c */ |
| /** arithmetic **/ |
/** arithmetic **/ |
| Line 129 struct object KaoMult(struct object aa,struct object b |
|
| Line 152 struct object KaoMult(struct object aa,struct object b |
|
| struct object KooDiv2(struct object ob1,struct object ob2); |
struct object KooDiv2(struct object ob1,struct object ob2); |
| struct object KoNegate(struct object ob1); |
struct object KoNegate(struct object ob1); |
| struct object KreduceRationalFunction(struct object ob); |
struct object KreduceRationalFunction(struct object ob); |
| |
struct object KooPower(struct object ob1,struct object ob2); |
| |
|
| /* for rational function object */ |
/* for rational function object */ |
| struct object KoInverse(struct object ob); |
struct object KoInverse(struct object ob); |
| Line 149 struct object KooLess(struct object o1,struct object o |
|
| Line 173 struct object KooLess(struct object o1,struct object o |
|
| |
|
| /** Conversion */ |
/** Conversion */ |
| struct object KdataConversion(struct object ob1, char *key); |
struct object KdataConversion(struct object ob1, char *key); |
| |
struct object Kto_int32(struct object ob); |
| struct object KpoInteger(int i); |
struct object KpoInteger(int i); |
| struct object KpoString(char *s); |
struct object KpoString(char *s); |
| struct object KpoPOLY(POLY f); |
struct object KpoPOLY(POLY f); |
| Line 156 struct object KpoArrayOfPOLY(struct arrayOfPOLY *ap); |
|
| Line 181 struct object KpoArrayOfPOLY(struct arrayOfPOLY *ap); |
|
| struct object KpoMatrixOfPOLY(struct matrixOfPOLY *mp); |
struct object KpoMatrixOfPOLY(struct matrixOfPOLY *mp); |
| struct object KpoRingp(struct ring *ringp); |
struct object KpoRingp(struct ring *ringp); |
| struct object KpoDouble(double a); |
struct object KpoDouble(double a); |
| |
struct object KpoUniversalNumber(struct coeff *u); |
| |
struct object KintToUniversalNumber(int n); |
| #define KopInteger(o) ( (o).lc.ival ) |
#define KopInteger(o) ( (o).lc.ival ) |
| #define KopString(o) ( (o).lc.str ) |
#define KopString(o) ( (o).lc.str ) |
| #define KopPOLY(o) ( (o).lc.poly ) |
#define KopPOLY(o) ( (o).lc.poly ) |
| Line 168 struct object KpoDouble(double a); |
|
| Line 195 struct object KpoDouble(double a); |
|
| #define Knumerator(o) ( (o).lc.op ) |
#define Knumerator(o) ( (o).lc.op ) |
| #define Kdenominator(o) ( (o).rc.op ) |
#define Kdenominator(o) ( (o).rc.op ) |
| #define KopDouble(ob) (*((ob).lc.dbl)) |
#define KopDouble(ob) (*((ob).lc.dbl)) |
| |
#define KopByteArray(o) ( (o).lc.bytes ) |
| |
#define getByteArraySize(o) ( (o).rc.ival ) |
| char *KPOLYToString(POLY f); |
char *KPOLYToString(POLY f); |
| /** conversion 2 **/ |
/** conversion 2 **/ |
| struct object arrayOfPOLYToArray(struct arrayOfPOLY *aa); |
struct object arrayOfPOLYToArray(struct arrayOfPOLY *aa); |
| Line 181 int objArrayToOrderMatrix(struct object oA,int order[] |
|
| Line 210 int objArrayToOrderMatrix(struct object oA,int order[] |
|
| int KsetOrderByObjArray(struct object oA); |
int KsetOrderByObjArray(struct object oA); |
| struct object oGetOrderMatrix(struct ring *ringp); /* order.c */ |
struct object oGetOrderMatrix(struct ring *ringp); /* order.c */ |
| struct object KgetOrderMatrixOfCurrentRing(); |
struct object KgetOrderMatrixOfCurrentRing(); |
| |
struct object oRingToOXringStructure(struct ring *ringp); /* order.c */ |
| int KsetUpRing(struct object ob1,struct object ob2, struct object ob3,struct object ob4,struct object ob5); |
int KsetUpRing(struct object ob1,struct object ob2, struct object ob3,struct object ob4,struct object ob5); |
| void KshowRing(struct ring *ringp); |
void KshowRing(struct ring *ringp); |
| struct object KdefaultPolyRing(struct object num); |
struct object KdefaultPolyRing(struct object num); |
| Line 197 struct object Khead(struct object ob); |
|
| Line 227 struct object Khead(struct object ob); |
|
| int KpolyLength(POLY f); |
int KpolyLength(POLY f); |
| struct object KsetOutputOrder(struct object obj,struct ring *rp); |
struct object KsetOutputOrder(struct object obj,struct ring *rp); |
| struct object KsetVariableNames(struct object obj,struct ring *rp); |
struct object KsetVariableNames(struct object obj,struct ring *rp); |
| |
/* KgetRingInfo has not yet been implemented. */ |
| |
struct object KgetRingInfo(struct object ringObj, struct object ofunc); |
| |
|
| |
|
| /* :eval */ |
/* :eval */ |
| struct object Keval(struct object obj); |
struct object Keval(struct object obj); |
| |
|
| /** misc **/ |
/** misc **/ |
| struct object KtoRecords(struct object ob1); |
struct object KtoRecords(struct object ob1); |
| |
struct object KstringToArgv(struct object ob1); |
| void Kclose(void); |
void Kclose(void); |
| int warningKan(char *s); |
int warningKan(char *s); |
| |
int warningKanNoStrictMode(char *s); |
| int errorKan1(char *s,char *m); |
int errorKan1(char *s,char *m); |
| struct object test(struct object ob); |
struct object test(struct object ob); |
| struct object Kextension(struct object ob); |
struct object Kextension(struct object ob); |
| struct object KgbExtension(struct object ob); |
struct object KgbExtension(struct object ob); |
| struct object KmpzExtension(struct object ob); |
struct object KmpzExtension(struct object ob); |
| |
struct object Krest(struct object ob); |
| |
struct object Kjoin(struct object ob1, struct object ob2); |
| |
struct object Kget(struct object ob1, struct object ob2); |
| |
|
| /** Utilities */ |
/** Utilities */ |
| char *KremoveSpace(char *s); |
char *KremoveSpace(char *s); |
| int KtoArgvbyCurryBrace(char *str,char *argv[],int limit); |
int KtoArgvbyCurryBrace(char *str,char *argv[],int limit); |
| |
|
| |
/** Attribute */ |
| |
struct object KgetAttributeList(struct object ob); |
| |
struct object KputAttributeList(struct object ob,struct object attr); |
| |
struct object KgetAttribute(struct object ob,struct object key); |
| |
struct object KputAttribute(struct object ob,struct object key,struct object value); |
| |
/* ob (key) (value) putAttribute /ob set. They are not destructive. */ |
| |
|
| |
|
| |
|
| /** kanExport1.c */ |
/** kanExport1.c */ |
| /* :ring :kan */ |
/* :ring :kan */ |
| struct object Kreduction(struct object f,struct object set); |
struct object Kreduction(struct object f,struct object set); |
| Line 234 POLY arrayToPOLY(struct object ob); |
|
| Line 278 POLY arrayToPOLY(struct object ob); |
|
| struct object POLYToArray(POLY f); |
struct object POLYToArray(POLY f); |
| struct object oPrincipalPart(struct object ob); |
struct object oPrincipalPart(struct object ob); |
| struct object oInitW(struct object ob,struct object oWeight); |
struct object oInitW(struct object ob,struct object oWeight); |
| |
struct object KordWsAll(struct object ob,struct object oWeight); |
| |
|
| /* :misc */ |
/* :misc */ |
| struct object homogenizeObject(struct object ob,int *gradep); |
struct object homogenizeObject(struct object ob,int *gradep); |
| struct object homogenizeObject_vec(struct object ob,int *gradep); |
struct object homogenizeObject_vec(struct object ob,int *gradep); |
| |
struct object homogenizeObject_go(struct object ob,int *gradep); |
| |
void KresetDegreeShift(void); |
| int oGrade(struct object ob); |
int oGrade(struct object ob); |
| struct ring *oRingp(struct object ob); |
struct ring *oRingp(struct object ob); |
| struct object KisOrdered(struct object of); |
struct object KisOrdered(struct object of); |
| struct object KvectorToSchreyer_es(struct object obarray); |
struct object KvectorToSchreyer_es(struct object obarray); |
| |
POLY objArrayToPOLY(struct object ob); |
| |
struct object POLYtoObjArray(POLY f,int size); |
| |
struct object KgetExponents(struct object obPoly,struct object type); |
| |
|
| /* hilbert.c */ |
/* hilbert.c */ |
| struct object hilberto(struct object obgb,struct object obvlist); |
struct object hilberto(struct object obgb,struct object obvlist); |
| Line 256 char *KobjectToBinary(struct object ob,int *size); |
|
| Line 306 char *KobjectToBinary(struct object ob,int *size); |
|
| |
|
| int mmLarger_tower3(POLY ff,POLY gg,struct object *gbList); /* order.c */ |
int mmLarger_tower3(POLY ff,POLY gg,struct object *gbList); /* order.c */ |
| struct object KschreyerSkelton(struct object g); |
struct object KschreyerSkelton(struct object g); |
| |
|
| |
/* misc */ |
| |
struct object KregionMatches(struct object sobj, struct object keyArray); |
| |
int objToInteger(struct object ob); |
| |
|
| |
/* shell.c */ |
| |
struct object KoxWhich(struct object cmdo,struct object patho); |
| |
struct object KoxShell(struct object ob); |
| |
void KoxShellHelp(char *key,FILE *fp); |