Changeset 2ffd25 in git for Singular/iparith.cc
- Timestamp:
- Jun 14, 2018, 2:59:48 PM (6 years ago)
- Branches:
- (u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', 'b4f17ed1d25f93d46dbe29e4b499baecc2fd51bb')
- Children:
- 1f37c3385e83e4bc34dab711cc9b9797b6290c84
- Parents:
- db48f3ea705fcb451c2ea640a2b72f643bae2f22
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/iparith.cc
rdb48f3e r2ffd25 834 834 return jjPLUSMINUS_Gen(res,u,v); 835 835 } 836 static BOOLEAN jjPLUS_SM(leftv res, leftv u, leftv v) 837 { 838 ideal A=(ideal)u->Data(); ideal B=(ideal)v->Data(); 839 res->data = (char *)(sm_Add(A , B, currRing)); 840 if (res->data==NULL) 841 { 842 Werror("matrix size not compatible(%dx%d, %dx%d)", 843 (int)A->rank,IDELEMS(A),(int)B->rank,IDELEMS(B)); 844 return TRUE; 845 } 846 return jjPLUSMINUS_Gen(res,u,v); 847 } 836 848 static BOOLEAN jjPLUS_MA_P(leftv res, leftv u, leftv v) 837 849 { … … 951 963 return FALSE; 952 964 } 965 static BOOLEAN jjMINUS_SM(leftv res, leftv u, leftv v) 966 { 967 ideal A=(ideal)u->Data(); ideal B=(ideal)v->Data(); 968 res->data = (char *)(sm_Sub(A , B, currRing)); 969 if (res->data==NULL) 970 { 971 Werror("matrix size not compatible(%dx%d, %dx%d)", 972 (int)A->rank,IDELEMS(A),(int)B->rank,IDELEMS(B)); 973 return TRUE; 974 } 975 return jjPLUSMINUS_Gen(res,u,v); 976 return FALSE; 977 } 953 978 static BOOLEAN jjTIMES_I(leftv res, leftv u, leftv v) 954 979 { … … 1130 1155 return FALSE; 1131 1156 } 1157 static BOOLEAN jjTIMES_SM(leftv res, leftv u, leftv v) 1158 { 1159 ideal A=(ideal)u->Data(); ideal B=(ideal)v->Data(); 1160 res->data = (char *)sm_Mult(A,B,currRing); 1161 if (res->data==NULL) 1162 { 1163 Werror("matrix size not compatible(%dx%d, %dx%d) in *", 1164 (int)A->rank,IDELEMS(A),(int)B->rank,IDELEMS(B)); 1165 return TRUE; 1166 } 1167 id_Normalize((ideal)res->data,currRing); 1168 if ((v->next!=NULL) || (u->next!=NULL)) 1169 return jjOP_REST(res,u,v); 1170 return FALSE; 1171 } 1132 1172 static BOOLEAN jjGE_BI(leftv res, leftv u, leftv v) 1133 1173 { … … 1294 1334 { 1295 1335 res->data = (char *)((long)mp_Equal((matrix)u->Data(),(matrix)v->Data(),currRing)); 1336 jjEQUAL_REST(res,u,v); 1337 return FALSE; 1338 } 1339 static BOOLEAN jjEQUAL_SM(leftv res, leftv u, leftv v) 1340 { 1341 res->data = (char *)((long)sm_Equal((ideal)u->Data(),(ideal)v->Data(),currRing)); 1296 1342 jjEQUAL_REST(res,u,v); 1297 1343 return FALSE; … … 5431 5477 Werror("wrong range[%d,%d] in matrix %s(%d x %d)",r,c,u->Fullname(), 5432 5478 MATROWS(m),MATCOLS(m)); 5479 return TRUE; 5480 } 5481 res->data=u->data; u->data=NULL; 5482 res->rtyp=u->rtyp; u->rtyp=0; 5483 res->name=u->name; u->name=NULL; 5484 Subexpr e=jjMakeSub(v); 5485 e->next=jjMakeSub(w); 5486 if (u->e==NULL) 5487 res->e=e; 5488 else 5489 { 5490 Subexpr h=u->e; 5491 while (h->next!=NULL) h=h->next; 5492 h->next=e; 5493 res->e=u->e; 5494 u->e=NULL; 5495 } 5496 return FALSE; 5497 } 5498 static BOOLEAN jjBRACK_SM(leftv res, leftv u, leftv v,leftv w) 5499 { 5500 ideal m= (ideal)u->Data(); 5501 int r = (int)(long)v->Data(); 5502 int c = (int)(long)w->Data(); 5503 //Print("gen. elem %d, %d\n",r,c); 5504 if ((r<1)||(r>m->rank)||(c<1)||(c>IDELEMS(m))) 5505 { 5506 Werror("wrong range[%d,%d] in matrix %s(%d x %d)",r,c,u->Fullname(), 5507 (int)m->rank,IDELEMS(m)); 5433 5508 return TRUE; 5434 5509 }
Note: See TracChangeset
for help on using the changeset viewer.