Changeset db28cee in git
- Timestamp:
- Dec 21, 1999, 12:44:03 PM (24 years ago)
- Branches:
- (u'spielwiese', '5b153614cbc72bfa198d75b1e9e33dab2645d9fe')
- Children:
- e4e42c02810a4796543855ac213cb8eaeab6b28f
- Parents:
- de4b5341ff19bcfd397ab4b1384ff66419cda3f0
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/grammar.y
rde4b53 rdb28cee 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: grammar.y,v 1.7 6 1999-12-06 16:06:44 obachmanExp $ */4 /* $Id: grammar.y,v 1.77 1999-12-21 11:44:01 Singular Exp $ */ 5 5 /* 6 6 * ABSTRACT: SINGULAR shell grammatik … … 139 139 %token GE 140 140 %token LE 141 %token INTDIV142 141 %token MINUSMINUS 143 142 %token NOT … … 300 299 %left '<' '>' GE LE 301 300 %left '+' '-' 302 %left '*' '/' '%' INTDIV301 %left '*' '/' '%' 303 302 %left UMINUS NOT 304 303 %left '^' … … 751 750 | expr '/' expr 752 751 { 753 if(iiExprArith2(&$$,&$1,'/',&$3)) YYERROR; 754 } 755 | expr INTDIV expr 756 { 757 if(iiExprArith2(&$$,&$1,INTDIV,&$3)) YYERROR; 752 if(iiExprArith2(&$$,&$1,$<i>2,&$3)) YYERROR; 758 753 } 759 754 | expr '^' expr … … 763 758 | expr '%' expr 764 759 { 765 if(iiExprArith2(&$$,&$1, '%',&$3)) YYERROR;760 if(iiExprArith2(&$$,&$1,$<i>2,&$3)) YYERROR; 766 761 } 767 762 | expr '>' expr -
Singular/iparith.cc
rde4b53 rdb28cee 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: iparith.cc,v 1.19 6 1999-12-20 16:38:22 krueger Exp $ */4 /* $Id: iparith.cc,v 1.197 1999-12-21 11:44:02 Singular Exp $ */ 5 5 6 6 /* … … 148 148 { "diff", 0, DIFF_CMD , CMD_2}, 149 149 { "dim", 0, DIM_CMD , CMD_1}, 150 { "div", 0, INTDIV , INTDIV},150 { "div", 0, INTDIV_CMD , '/'}, 151 151 #ifdef DRING 152 152 { "dring", 0, DRING_CMD , DRING_CMD}, … … 222 222 { "minor", 0, MINOR_CMD , CMD_23}, 223 223 { "minres", 0, MINRES_CMD , CMD_1}, 224 { "mod", 0, '%','%'},224 { "mod", 0, INTMOD_CMD , '%'}, 225 225 { "module", 0, MODUL_CMD , MODUL_CMD}, 226 226 { "modulo", 0, MODULO_CMD , CMD_2}, … … 365 365 case '*': (*aa) *= bb; break; 366 366 case '/': 367 case INTDIV: (*aa) /= bb; break; 368 case '%': (*aa) %= bb; break; 367 case INTDIV_CMD: (*aa) /= bb; break; 368 case '%': 369 case INTMOD_CMD: (*aa) %= bb; break; 369 370 } 370 371 res->data=(char *)aa; … … 1003 1004 return FALSE; 1004 1005 } 1005 static BOOLEAN jjDIV _I(leftv res, leftv u, leftv v)1006 static BOOLEAN jjDIVMOD_I(leftv res, leftv u, leftv v) 1006 1007 { 1007 1008 int a= (int) u->Data(); … … 1015 1016 int c=a%bb; 1016 1017 if(c<0) c+=bb; 1017 //res->data = (char *)((a-c) / b); 1018 res->data = (char *)(a / b); 1018 int r=0; 1019 switch (iiOp) 1020 { 1021 case INTMOD_CMD: 1022 r=c; break; 1023 case '%': 1024 r= (a % b); break; 1025 case INTDIV_CMD: 1026 r=((a-c) /b); break; 1027 case '/': 1028 r= (a / b); break; 1029 } 1030 res->data=(void *)r; 1019 1031 return FALSE; 1020 1032 } … … 1054 1066 res->data = (char *)pDivideM((poly)u->CopyD(POLY_CMD),pHead(q)); 1055 1067 } 1056 return FALSE;1057 }1058 static BOOLEAN jjMOD_I(leftv res, leftv u, leftv v)1059 {1060 int a=(int)u->Data();1061 int b=ABS((int)v->Data());1062 if (errorreported) return TRUE;1063 if (b==0)1064 {1065 WerrorS("div. by 0");1066 return TRUE;1067 }1068 int c=a%b;1069 if(c<0) c+=b;1070 res->data = (char *)c;1071 1068 return FALSE; 1072 1069 } … … 2098 2095 ,{jjDIV_P, '/', POLY_CMD, POLY_CMD, POLY_CMD PROFILER} 2099 2096 ,{jjDIV_P, '/', VECTOR_CMD, VECTOR_CMD, POLY_CMD PROFILER} 2100 ,{jjDIV _I,'/', INT_CMD, INT_CMD, INT_CMD PROFILER}2097 ,{jjDIVMOD_I, '/', INT_CMD, INT_CMD, INT_CMD PROFILER} 2101 2098 ,{jjOP_IV_I, '/', INTVEC_CMD, INTVEC_CMD, INT_CMD PROFILER} 2102 2099 ,{jjOP_IV_I, '/', INTMAT_CMD, INTMAT_CMD, INT_CMD PROFILER} 2103 ,{jjDIV _I, INTDIV,INT_CMD, INT_CMD, INT_CMD PROFILER}2104 ,{jjOP_IV_I, INTDIV ,INTVEC_CMD, INTVEC_CMD, INT_CMD PROFILER}2105 ,{jjOP_IV_I, INTDIV ,INTMAT_CMD, INTMAT_CMD, INT_CMD PROFILER}2106 ,{jj MOD_I,'%', INT_CMD, INT_CMD, INT_CMD PROFILER}2100 ,{jjDIVMOD_I, INTDIV_CMD, INT_CMD, INT_CMD, INT_CMD PROFILER} 2101 ,{jjOP_IV_I, INTDIV_CMD, INTVEC_CMD, INTVEC_CMD, INT_CMD PROFILER} 2102 ,{jjOP_IV_I, INTDIV_CMD, INTMAT_CMD, INTMAT_CMD, INT_CMD PROFILER} 2103 ,{jjDIVMOD_I, '%', INT_CMD, INT_CMD, INT_CMD PROFILER} 2107 2104 ,{jjOP_IV_I, '%', INTVEC_CMD, INTVEC_CMD, INT_CMD PROFILER} 2108 2105 ,{jjOP_IV_I, '%', INTMAT_CMD, INTMAT_CMD, INT_CMD PROFILER} 2106 ,{jjDIVMOD_I, INTMOD_CMD, INT_CMD, INT_CMD, INT_CMD PROFILER} 2107 ,{jjOP_IV_I, INTMOD_CMD, INTVEC_CMD, INTVEC_CMD, INT_CMD PROFILER} 2108 ,{jjOP_IV_I, INTMOD_CMD, INTMAT_CMD, INTMAT_CMD, INT_CMD PROFILER} 2109 2109 ,{jjPOWER_I, '^', INT_CMD, INT_CMD, INT_CMD PROFILER} 2110 2110 ,{jjPOWER_N, '^', NUMBER_CMD, NUMBER_CMD, INT_CMD PROFILER} -
Singular/tok.h
rde4b53 rdb28cee 7 7 * ABSTRACT: tokens, types for interpreter; general macros 8 8 */ 9 /* $Id: tok.h,v 1.3 4 1999-12-02 23:03:52 wenkExp $ */9 /* $Id: tok.h,v 1.35 1999-12-21 11:44:01 Singular Exp $ */ 10 10 11 11 #ifndef MYYSTYPE … … 75 75 INSERT_CMD, 76 76 INT_CMD, 77 INTDIV_CMD, 78 INTMOD_CMD, 77 79 INTVEC_CMD, 78 80 IS_RINGVAR,
Note: See TracChangeset
for help on using the changeset viewer.