File: [local] / OpenXM / src / kan96xx / Kan / kclass.h (download)
Revision 1.2, Sun Jan 16 07:55:39 2000 UTC (24 years, 8 months ago) by takayama
Branch: MAIN
CVS Tags: maekawa-ipv6, RELEASE_20000124, RELEASE_1_1_3, RELEASE_1_1_2 Changes since 1.1: +1 -1
lines
Congratulation of sm1 version 3.* !
|
/* $OpenXM: OpenXM/src/kan96xx/Kan/kclass.h,v 1.2 2000/01/16 07:55:39 takayama Exp $ */
/* kclass.h 1997, 3/1
This module handles class data base.
Extended class names.
*/
/* Format of extended class
Sclass
ob.lc.ival : extended tag
ob.rc.voidp : body
*/
/* The next macro Extended Class tag returns -1 if the object
is not in Sclass and returns extended class tags if the object
is in Sclass.
*/
#define ectag(ob) ((ob).tag != Sclass? -1:(ob).lc.ival)
#define ecbody(ob) ((ob).rc.voidp)
/* Extended Class tags */
#define CLASSNAME_OPERANDSTACK 256
#define CLASSNAME_ERROR_PACKET 257
#define CLASSNAME_CONTEXT 258
#define CLASSNAME_GradedPolySet 259
#define CLASSNAME_mathcap 260
#define CLASSNAME_sampleClass 261
#define CLASSNAME_CMO CMO /* 1024 defined in stackm.h and plugin.h */
#define CLASSNAME_indeterminate 262
#define CLASSNAME_tree 263
#define CLASSNAME_recursivePolynomial 264
#define CLASSNAME_polynomialInOneVariable 265
/* */
#define CLASS_NOT_USED 0
#define CLASS_INTERNAL 1
#define CLASS_OBJ 2
/* Conversion functions */
struct object KpoOperandStack(struct operandStack * op);
struct object KpoErrorPacket(struct object *op);
struct object KpoContext(struct context *ct);
struct object KpoGradedPolySet(struct gradedPolySet *grG);
struct object KpoMathCap(struct object *op);
struct object KpoCMOClass(struct object *op);
struct object KpoIndeterminate(struct object op);
struct object KpoTree(struct object op);
struct object KpoRecursivePolynomial(struct object op);
struct object KpoPolynomialInOneVariable(struct object op);
struct object KpoSampleClass(struct object *op);
/* Other constructors */
struct object KnewIndeterminate(char *s);
#define KopOperandStack(ob) ((struct operandStack *)(ob).rc.voidp)
#define KopErrorPacket(ob) ((struct object *)(ob).rc.voidp)
#define KopContext(ob) ((struct context *)(ob).rc.voidp)
#define KopGradedPolySet(ob) ((struct gradedPolySet *)(ob).rc.voidp)
#define KopMathCap(ob) ((struct object *)(ob).rc.voidp)
#define KopIndeterminate(ob) (*((struct object *)(ob).rc.voidp))
#define KopTree(ob) (*((struct object *)(ob).rc.voidp))
#define KopRecursivePolynomial(ob) (*((struct object *)(ob).rc.voidp))
#define KopPolynomialInOneVariable(ob) (*((struct object *)(ob).rc.voidp))
#define KopSampleClass(ob) ((struct object *)(ob).rc.voidp)
void fprintErrorPacket(FILE *fp, struct object *op);
void fprintMathCap(FILE *fp, struct object *op);
/* Functions in Kclass/sample.c */
void fprintSampleClass(FILE *fp,struct object *op);
int eqSampleClass(struct object *ob1, struct object *ob2);
/* Functions in Kclass/rawcmo.c */
void fprintCMOClass(FILE *fp,struct object op);
/* Functions in Kclass/indeterminate.c */
void fprintInderminate(FILE *fp,struct object ob);
int eqIndetermiante(struct object *ob1, struct object *ob2);
struct object addTree(struct object ob1,struct object ob2);
void fprintTree(FILE *fp,struct object ob);
int isTreeAdd(struct object ob);
void fprintRecursivePolynomial(FILE *fp,struct object ob);
void fprintPolynomialInOneVariable(FILE *fp,struct object ob);
struct object polyToRecursivePoly(struct object p);
struct object polyToRecursivePoly2(struct object p,struct object vlist,int vn);
struct object recursivePolyToPoly(struct object rp);
struct object coeffToObject(struct coeff *cp);
int isRecursivePolynomial2(struct object ob);