Changeset e14e1b0 in git
- Timestamp:
- Mar 8, 2010, 2:27:18 PM (13 years ago)
- Branches:
- (u'spielwiese', '0d6b7fcd9813a1ca1ed4220cfa2b104b97a0a003')
- Children:
- 32785f98c022f9341d401098c78dafff2aff4437
- Parents:
- c1a5fdccad23660f683eef44f4ca207fa4050c1c
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/iparith.cc
rc1a5fd re14e1b0 1131 1131 static BOOLEAN jjTIMES_MA_P2(leftv res, leftv u, leftv v) 1132 1132 { 1133 return jjTIMES_MA_P1(res,v,u); 1133 poly p=(poly)u->CopyD(POLY_CMD); 1134 int r=pMaxComp(p);/* recompute the rank for the case ideal*vector*/ 1135 ideal I= (ideal)pMultMp(p,(matrix)v->CopyD(MATRIX_CMD)); 1136 if (r>0) I->rank=r; 1137 idNormalize(I); 1138 res->data = (char *)I; 1139 return FALSE; 1134 1140 } 1135 1141 static BOOLEAN jjTIMES_MA_N1(leftv res, leftv u, leftv v) … … 3375 3381 ,{jjTIMES_P, '*', VECTOR_CMD, VECTOR_CMD, POLY_CMD, ALLOW_PLURAL | ALLOW_RING} 3376 3382 ,{jjTIMES_MA_P1,'*', IDEAL_CMD, IDEAL_CMD, POLY_CMD, ALLOW_PLURAL | ALLOW_RING} 3377 ,{jjTIMES_MA_P2,'*', IDEAL_CMD, POLY_CMD, IDEAL_CMD, NO_PLURAL | ALLOW_RING}3383 ,{jjTIMES_MA_P2,'*', IDEAL_CMD, POLY_CMD, IDEAL_CMD, ALLOW_PLURAL | ALLOW_RING} 3378 3384 ,{jjTIMES_ID, '*', IDEAL_CMD, IDEAL_CMD, IDEAL_CMD, ALLOW_PLURAL | ALLOW_RING} 3379 3385 ,{jjTIMES_MA_P1,'*', MODUL_CMD, IDEAL_CMD, VECTOR_CMD, ALLOW_PLURAL | ALLOW_RING} 3380 ,{jjTIMES_MA_P2,'*', MODUL_CMD, VECTOR_CMD, IDEAL_CMD, NO_PLURAL | ALLOW_RING}3386 ,{jjTIMES_MA_P2,'*', MODUL_CMD, VECTOR_CMD, IDEAL_CMD, ALLOW_PLURAL | ALLOW_RING} 3381 3387 ,{jjTIMES_ID, '*', MODUL_CMD, IDEAL_CMD, MODUL_CMD, ALLOW_PLURAL | ALLOW_RING} 3382 3388 ,{jjTIMES_ID, '*', MODUL_CMD, MODUL_CMD, IDEAL_CMD, ALLOW_PLURAL | ALLOW_RING} 3383 3389 ,{jjTIMES_MA_P1,'*', MATRIX_CMD, MATRIX_CMD, POLY_CMD, ALLOW_PLURAL | ALLOW_RING} 3384 ,{jjTIMES_MA_P2,'*', MATRIX_CMD, POLY_CMD, MATRIX_CMD, NO_PLURAL | ALLOW_RING}3390 ,{jjTIMES_MA_P2,'*', MATRIX_CMD, POLY_CMD, MATRIX_CMD, ALLOW_PLURAL | ALLOW_RING} 3385 3391 ,{jjTIMES_MA_N1,'*', MATRIX_CMD, MATRIX_CMD, NUMBER_CMD, ALLOW_PLURAL | ALLOW_RING} 3386 3392 ,{jjTIMES_MA_N2,'*', MATRIX_CMD, NUMBER_CMD, MATRIX_CMD, ALLOW_PLURAL | ALLOW_RING} -
kernel/matpol.cc
rc1a5fd re14e1b0 197 197 } 198 198 a->m[0] = pMult(a->m[0], p); 199 return a; 200 } 201 202 /*2 203 * multiply a poly 'p' by a matrix 'a', destroy the args 204 */ 205 matrix pMultMp(poly p, matrix a) 206 { 207 int k, n = a->nrows, m = a->ncols; 208 209 pNormalize(p); 210 for (k=m*n-1; k>0; k--) 211 { 212 if (a->m[k]!=NULL) 213 a->m[k] = pMult(pCopy(p), a->m[k]); 214 } 215 a->m[0] = pMult(p, a->m[0]); 199 216 return a; 200 217 } -
kernel/matpol.h
rc1a5fd re14e1b0 38 38 matrix mpMultI(matrix a, int f); 39 39 matrix mpMultP(matrix a, poly p); 40 matrix pMultMp(poly p, matrix a); 40 41 matrix mpAdd(matrix a, matrix b); 41 42 matrix mpSub(matrix a, matrix b);
Note: See TracChangeset
for help on using the changeset viewer.