=================================================================== RCS file: /home/cvs/OpenXM/src/kan96xx/plugin/cmo.c,v retrieving revision 1.9 retrieving revision 1.11 diff -u -p -r1.9 -r1.11 --- OpenXM/src/kan96xx/plugin/cmo.c 2001/09/01 01:37:49 1.9 +++ OpenXM/src/kan96xx/plugin/cmo.c 2004/03/08 08:24:42 1.11 @@ -1,4 +1,4 @@ -/*$OpenXM: OpenXM/src/kan96xx/plugin/cmo.c,v 1.8 2001/05/04 01:06:29 takayama Exp $*/ +/*$OpenXM: OpenXM/src/kan96xx/plugin/cmo.c,v 1.10 2003/12/06 02:35:54 takayama Exp $*/ #include #include /* #include */ @@ -660,6 +660,12 @@ void cmoObjectToCmo00(struct object ob) case SuniversalNumber: cmoOutGMPCoeff(ob.lc.universalNumber->val.bigp); break; + case SrationalFunction: + tmp[0] = htonl(CMO_RATIONAL); + cmoOutputToBuf(CMOPUT,tmp,sizeof(cmoint)); + cmoObjectToCmo00(*(Knumerator(ob))); + cmoObjectToCmo00(*(Kdenominator(ob))); + break; case Sdouble: if (sizeof(double) != 8) errorCmo("double is assumed to be 8 bytes."); cmoOutRawInt(CMO_64BIT_MACHINE_DOUBLE); @@ -1450,7 +1456,8 @@ void *KSmathCapByStruct(void) mathcap->sm[9] = SM_getsp; mathcap->sm[10] = SM_dupErrors; mathcap->sm[11] = SM_pushCMOtag; - mathcap->smSize = 12; + mathcap->sm[12] = SM_executeFunctionWithOptionalArgument; + mathcap->smSize = 13; return((void *)mathcap); }