=================================================================== RCS file: /home/cvs/OpenXM/src/kan96xx/Kan/kanExport0.c,v retrieving revision 1.26 retrieving revision 1.33 diff -u -p -r1.26 -r1.33 --- OpenXM/src/kan96xx/Kan/kanExport0.c 2004/08/23 08:33:55 1.26 +++ OpenXM/src/kan96xx/Kan/kanExport0.c 2004/09/11 01:00:42 1.33 @@ -1,4 +1,4 @@ -/* $OpenXM: OpenXM/src/kan96xx/Kan/kanExport0.c,v 1.25 2004/08/22 12:52:34 takayama Exp $ */ +/* $OpenXM: OpenXM/src/kan96xx/Kan/kanExport0.c,v 1.32 2004/09/09 11:42:22 takayama Exp $ */ #include #include "datatype.h" #include "stackm.h" @@ -919,6 +919,10 @@ struct object KdataConversion(obj,key) return(rob); }else if (strcmp(key,"poly") == 0) { rob = KpoPOLY(ZERO); + return rob; + }else if (strcmp(key,"array") == 0) { + rob = newObjectArray(0); + return rob; }else{ warningKan("Sorry. The data conversion from null to this data type has not supported yet.\n"); } @@ -1015,7 +1019,7 @@ struct object KdataConversion(obj,key) if (strcmp(key,"array") == 0) { return(rob); }else if (strcmp(key,"list") == 0) { - rob = *( arrayToList(obj) ); + rob = KarrayToList(obj); return(rob); }else if (strcmp(key,"arrayOfPOLY")==0) { rob = KpoArrayOfPOLY(arrayToArrayOfPOLY(obj)); @@ -1108,12 +1112,13 @@ struct object KdataConversion(obj,key) break; case Slist: if (strcmp(key,"array") == 0) { - rob = listToArray(&obj); + rob = KlistToArray(obj); return(rob); } break; case SuniversalNumber: if ((strcmp(key,"universalNumber")==0) || (strcmp(key,"numerator")==0)) { + rob = obj; return(rob); }else if (strcmp(key,"integer")==0) { rob = KpoInteger(coeffToInt(obj.lc.universalNumber)); @@ -1210,7 +1215,24 @@ struct object KdataConversion(obj,key) } return(NullObject); } - + +/* cf. macro to_int32 */ +struct object Kto_int32(struct object ob) { + int n,i; + struct object otmp; + struct object rob; + if (ob.tag == SuniversalNumber) return KdataConversion(ob,"integer"); + if (ob.tag == Sarray) { + n = getoaSize(ob); + rob = newObjectArray(n); + for (i=0; i