=================================================================== RCS file: /home/cvs/OpenXM/src/kan96xx/Kan/option.c,v retrieving revision 1.6 retrieving revision 1.18 diff -u -p -r1.6 -r1.18 --- OpenXM/src/kan96xx/Kan/option.c 2003/07/10 05:01:41 1.6 +++ OpenXM/src/kan96xx/Kan/option.c 2011/10/05 05:46:14 1.18 @@ -1,4 +1,4 @@ -/* $OpenXM: OpenXM/src/kan96xx/Kan/option.c,v 1.5 2001/05/04 01:06:24 takayama Exp $ */ +/* $OpenXM: OpenXM/src/kan96xx/Kan/option.c,v 1.17 2006/12/21 05:29:49 takayama Exp $ */ #include #include "datatype.h" #include "stackm.h" @@ -17,6 +17,7 @@ struct object KsystemVariable(ob) /* Don't forget to write the keys in usage.c */ extern int PrintDollar; extern int Wrap; + extern int COutput; extern struct ring *CurrentRingp; extern int Verbose; extern int UseCriterion1; @@ -45,15 +46,26 @@ struct object KsystemVariable(ob) extern int Homogenize_vec; extern int CmoDMSOutputOption; extern int DebugReductionRed; /* hidden option */ + extern int DebugReductionEcart; extern char *VersionString; extern int AvoidTheSameRing; extern char *LeftBracket; extern char *RightBracket; extern int SecureMode; - extern int TangentCone; + extern int Ecart; + extern int EcartAutomaticHomogenization; + extern int TraceLift; + extern int DoCancel; + extern int DebugContentReduction; + extern int QuoteMode; + extern int RestrictedMode, RestrictedMode_saved; + extern int UseDsmall; int n,i; - struct object ob1,ob2,ob3,ob4; + struct object ob1 = OINIT; + struct object ob2 = OINIT; + struct object ob3 = OINIT; + struct object ob4 = OINIT; struct object rob = NullObject; switch (getoaSize(ob)) { case 1: /* get the value */ @@ -64,6 +76,8 @@ struct object KsystemVariable(ob) rob = KpoInteger(PrintDollar); }else if (strcmp(ob1.lc.str,"Wrap") == 0) { rob = KpoInteger(Wrap); + }else if (strcmp(ob1.lc.str,"COutput") == 0) { + rob = KpoInteger(COutput); }else if (strcmp(ob1.lc.str,"P") == 0) { rob = KpoInteger(CurrentRingp->p); }else if (strcmp(ob1.lc.str,"N") == 0) { @@ -178,8 +192,22 @@ struct object KsystemVariable(ob) rob = KpoString(RightBracket); }else if (strcmp(ob1.lc.str,"SecureMode")==0) { rob = KpoInteger(SecureMode); - }else if (strcmp(ob1.lc.str,"TangentCone")==0) { - rob = KpoInteger(TangentCone); + }else if (strcmp(ob1.lc.str,"RestrictedMode")==0) { + rob = KpoInteger(RestrictedMode); + }else if (strcmp(ob1.lc.str,"Ecart")==0) { + rob = KpoInteger(Ecart); + }else if (strcmp(ob1.lc.str,"EcartAutomaticHomogenization")==0) { + rob = KpoInteger(EcartAutomaticHomogenization); + }else if (strcmp(ob1.lc.str,"TraceLift")==0) { + rob = KpoInteger(TraceLift); + }else if (strcmp(ob1.lc.str,"DoCancel")==0) { + rob = KpoInteger(DoCancel); + }else if (strcmp(ob1.lc.str,"DebugContentReduction")==0) { + rob = KpoInteger(DebugContentReduction); + }else if (strcmp(ob1.lc.str,"QuoteMode")==0) { + rob = KpoInteger(QuoteMode); + }else if (strcmp(ob1.lc.str,"UseDsmall")==0) { + rob = KpoInteger(UseDsmall); }else{ warningKan("KsystemVariable():Unknown key word.\n"); } @@ -204,6 +232,9 @@ struct object KsystemVariable(ob) P = ob2.lc.ival; Q should be set here too. CurrentRingp->p = P; rob = KpoInteger(P); */ + }else if (strcmp(ob1.lc.str,"COutput") == 0) { + COutput = ob2.lc.ival; + rob = KpoInteger(COutput); }else if (strcmp(ob1.lc.str,"NN") == 0) { if (ob2.lc.ival <= CurrentRingp->n && ob2.lc.ival >= CurrentRingp->m) { CurrentRingp->nn = ob2.lc.ival; @@ -285,6 +316,9 @@ struct object KsystemVariable(ob) }else if (strcmp(ob1.lc.str,"DebugReductionRed") == 0) { DebugReductionRed = KopInteger(ob2); rob = KpoInteger(DebugReductionRed); + }else if (strcmp(ob1.lc.str,"DebugReductionEcart") == 0) { + DebugReductionEcart = KopInteger(ob2); + rob = KpoInteger(DebugReductionEcart); }else if (strcmp(ob1.lc.str,"AvoidTheSameRing") == 0) { AvoidTheSameRing = KopInteger(ob2); rob = KpoInteger(AvoidTheSameRing); @@ -295,9 +329,35 @@ struct object KsystemVariable(ob) errorKan1("%s\n","You cannot weaken the security level."); } rob = KpoInteger(SecureMode); - }else if (strcmp(ob1.lc.str,"TangentCone") == 0) { - TangentCone = KopInteger(ob2); - rob = KpoInteger(TangentCone); + }else if (strcmp(ob1.lc.str,"RestrictedMode") == 0) { + if (KopInteger(ob2) >= RestrictedMode) { + RestrictedMode = KopInteger(ob2); + RestrictedMode_saved = RestrictedMode; + }else{ + errorKan1("%s\n","You cannot weaken the RestrictedMode level."); + } + rob = KpoInteger(RestrictedMode); + }else if (strcmp(ob1.lc.str,"Ecart") == 0) { + Ecart = KopInteger(ob2); + rob = KpoInteger(Ecart); + }else if (strcmp(ob1.lc.str,"EcartAutomaticHomogenization") == 0) { + EcartAutomaticHomogenization = KopInteger(ob2); + rob = KpoInteger(EcartAutomaticHomogenization); + }else if (strcmp(ob1.lc.str,"TraceLift") == 0) { + TraceLift = KopInteger(ob2); + rob = KpoInteger(TraceLift); + }else if (strcmp(ob1.lc.str,"DoCancel") == 0) { + DoCancel = KopInteger(ob2); + rob = KpoInteger(DoCancel); + }else if (strcmp(ob1.lc.str,"DebugContentReduction") == 0) { + DebugContentReduction = KopInteger(ob2); + rob = KpoInteger(DebugContentReduction); + }else if (strcmp(ob1.lc.str,"QuoteMode") == 0) { + QuoteMode = KopInteger(ob2); + rob = KpoInteger(QuoteMode); + }else if (strcmp(ob1.lc.str,"UseDsmall") == 0) { + UseDsmall = KopInteger(ob2); + rob = KpoInteger(UseDsmall); }else{ warningKan("KsystemVariable():Unknown key word.\n"); }