Annotation of OpenXM/src/kan96xx/Kan/kclass.h, Revision 1.1
1.1 ! maekawa 1:
! 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>