=================================================================== RCS file: /home/cvs/OpenXM/src/kan96xx/Kan/kanExport0.c,v retrieving revision 1.1 retrieving revision 1.3 diff -u -p -r1.1 -r1.3 --- OpenXM/src/kan96xx/Kan/kanExport0.c 1999/10/08 02:12:01 1.1 +++ OpenXM/src/kan96xx/Kan/kanExport0.c 2000/06/08 08:35:02 1.3 @@ -1,3 +1,4 @@ +/* $OpenXM: OpenXM/src/kan96xx/Kan/kanExport0.c,v 1.2 1999/11/06 10:37:30 takayama Exp $ */ #include #include "datatype.h" #include "stackm.h" @@ -837,6 +838,8 @@ char *key; struct object rob1,rob2; char *s; int i; + double f; + double f2; /* reports the data type */ if (key[0] == 't' || key[0] =='e') { if (strcmp(key,"type?")==0) { @@ -936,6 +939,21 @@ char *key; if (flag == -1) errorKan1("KdataConversion(): %s", "It's not number.\n"); return(rob); + }else if (strcmp(key,"double") == 0) { + /* Check the format. 2.3432 e2 is not allowed. It should be 2.3232e2.*/ + flag = 0; + for (i=0; (obj.lc.str)[i] != '\0'; i++) { + if ((obj.lc.str)[i] > ' ' && flag == 0) flag=1; + else if ((obj.lc.str)[i] <= ' ' && flag == 1) flag = 2; + else if ((obj.lc.str)[i] > ' ' && flag == 2) flag=3; + } + if (flag == 3) errorKan1("KdataConversion(): %s","The data for the double contains blanck(s)"); + /* Read the double. */ + if (sscanf(obj.lc.str,"%lf",&f) <= 0) { + errorKan1("KdataConversion(): %s","It cannot be translated to double."); + } + rob = KpoDouble(f); + return(rob); }else if (strcmp(key,"null") == 0) { rob = NullObject; return(rob); @@ -2242,6 +2260,12 @@ struct object KgbExtension(struct object obj) obj1 = getoa(obj,1); if (obj1.tag != Sarray) errorKan1("%s\n","[(toes) array] gbext poly"); return(KvectorToSchreyer_es(obj1)); + }else if (strcmp(key,"toe_") == 0) { + if (size != 2) errorKan1("%s\n","[(toe_) array] gbext poly"); + obj1 = getoa(obj,1); + if (obj1.tag == Spoly) return(obj1); + if (obj1.tag != Sarray) errorKan1("%s\n","[(toe_) array] gbext poly"); + return(KpoPOLY(arrayToPOLY(obj1))); }else if (strcmp(key,"isOrdered") == 0) { if (size != 2) errorKan1("%s\n","[(isOrdered) poly] gbext poly"); obj1 = getoa(obj,1);