[BACK]Return to kclass.h CVS log [TXT][DIR] Up to [local] / OpenXM / src / kan96xx / Kan

Annotation of OpenXM/src/kan96xx/Kan/kclass.h, Revision 1.2

1.2     ! takayama    1: /* $OpenXM$ */
1.1       maekawa     2:
                      3: /* kclass.h  1997, 3/1
                      4:    This module handles class data base.
                      5:    Extended class names.
                      6: */
                      7:
                      8: /* Format of extended class
                      9:    Sclass
                     10:    ob.lc.ival :  extended tag
                     11:    ob.rc.voidp : body
                     12: */
                     13: /* The next macro  Extended Class tag returns -1 if the object
                     14:    is not in Sclass and returns extended class tags if the object
                     15:    is in Sclass.
                     16:    */
                     17: #define ectag(ob) ((ob).tag != Sclass? -1:(ob).lc.ival)
                     18: #define ecbody(ob) ((ob).rc.voidp)
                     19: /* Extended Class tags */
                     20: #define CLASSNAME_OPERANDSTACK 256
                     21: #define CLASSNAME_ERROR_PACKET 257
                     22: #define CLASSNAME_CONTEXT 258
                     23: #define CLASSNAME_GradedPolySet 259
                     24: #define CLASSNAME_mathcap  260
                     25: #define CLASSNAME_sampleClass   261
                     26:
                     27: #define CLASSNAME_CMO     CMO    /* 1024 defined in stackm.h and plugin.h */
                     28: #define CLASSNAME_indeterminate         262
                     29: #define CLASSNAME_tree                  263
                     30: #define CLASSNAME_recursivePolynomial   264
                     31: #define CLASSNAME_polynomialInOneVariable   265
                     32:
                     33:
                     34: /*    */
                     35: #define  CLASS_NOT_USED  0
                     36: #define  CLASS_INTERNAL  1
                     37: #define  CLASS_OBJ     2
                     38:
                     39: /* Conversion functions */
                     40: struct object KpoOperandStack(struct operandStack * op);
                     41: struct object KpoErrorPacket(struct object *op);
                     42: struct object KpoContext(struct context *ct);
                     43: struct object KpoGradedPolySet(struct gradedPolySet *grG);
                     44: struct object KpoMathCap(struct object *op);
                     45: struct object KpoCMOClass(struct object *op);
                     46: struct object KpoIndeterminate(struct object op);
                     47: struct object KpoTree(struct object op);
                     48: struct object KpoRecursivePolynomial(struct object op);
                     49: struct object KpoPolynomialInOneVariable(struct object op);
                     50: struct object KpoSampleClass(struct object *op);
                     51:
                     52: /* Other constructors */
                     53: struct object KnewIndeterminate(char *s);
                     54:
                     55: #define KopOperandStack(ob) ((struct operandStack *)(ob).rc.voidp)
                     56: #define KopErrorPacket(ob) ((struct object *)(ob).rc.voidp)
                     57: #define KopContext(ob) ((struct context *)(ob).rc.voidp)
                     58: #define KopGradedPolySet(ob) ((struct gradedPolySet *)(ob).rc.voidp)
                     59: #define KopMathCap(ob) ((struct object *)(ob).rc.voidp)
                     60: #define KopIndeterminate(ob) (*((struct object *)(ob).rc.voidp))
                     61: #define KopTree(ob) (*((struct object *)(ob).rc.voidp))
                     62: #define KopRecursivePolynomial(ob) (*((struct object *)(ob).rc.voidp))
                     63: #define KopPolynomialInOneVariable(ob) (*((struct object *)(ob).rc.voidp))
                     64: #define KopSampleClass(ob) ((struct object *)(ob).rc.voidp)
                     65:
                     66:
                     67: void fprintErrorPacket(FILE *fp, struct object *op);
                     68: void fprintMathCap(FILE *fp, struct object *op);
                     69:
                     70: /* Functions in Kclass/sample.c */
                     71: void fprintSampleClass(FILE *fp,struct object *op);
                     72: int eqSampleClass(struct object *ob1, struct object *ob2);
                     73:
                     74: /* Functions in Kclass/rawcmo.c */
                     75: void fprintCMOClass(FILE *fp,struct object op);
                     76:
                     77: /* Functions in Kclass/indeterminate.c */
                     78: void fprintInderminate(FILE *fp,struct object ob);
                     79: int eqIndetermiante(struct object *ob1, struct object *ob2);
                     80: struct object addTree(struct object ob1,struct object ob2);
                     81: void fprintTree(FILE *fp,struct object ob);
                     82: int isTreeAdd(struct object ob);
                     83:
                     84: void fprintRecursivePolynomial(FILE *fp,struct object ob);
                     85: void fprintPolynomialInOneVariable(FILE *fp,struct object ob);
                     86: struct object polyToRecursivePoly(struct object p);
                     87: struct object polyToRecursivePoly2(struct object p,struct object vlist,int vn);
                     88: struct object recursivePolyToPoly(struct object rp);
                     89: struct object coeffToObject(struct coeff *cp);
                     90: int isRecursivePolynomial2(struct object ob);
                     91:
                     92:
                     93:
                     94:
                     95:
                     96:

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>