Changeset d9ccb8 in git
- Timestamp:
- Jun 18, 2018, 4:33:19 PM (6 years ago)
- Branches:
- (u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', 'b4f17ed1d25f93d46dbe29e4b499baecc2fd51bb')
- Children:
- a6a875048bfb185f59dc11aa3f301173392ef1ea
- Parents:
- b1f3061bfc36e07816a066e0ae80a4f44ed566d4
- Location:
- Singular
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/matrix.lib
rb1f3061 rd9ccb8 18 18 submat(A,r,c); submatrix of A with rows/cols specified by intvec r/c 19 19 symmat(n[,id]); generic symmetric nxn matrix [entries from id] 20 tensor(A,B); matrix, tensor product of matrices A nd B21 20 unitmat(n); unit square matrix of size n 22 21 gauss_col(A); transform a matrix into col-reduced Gauss normal form … … 457 456 print(symmat(n,i)); // symmetric matrix of generic linear forms 458 457 kill R1; 459 }460 ///////////////////////////////////////////////////////////////////////////////461 462 proc tensor (matrix A, matrix B)463 "USAGE: tensor(A,B); A,B matrices464 RETURN: matrix, tensor product of A and B465 EXAMPLE: example tensor; shows an example466 "467 {468 if (ncols(A)==0)469 {470 int q=nrows(A)*nrows(B);471 matrix D[q][0];472 return(D);473 }474 475 int i,j;476 matrix C,D;477 for( i=1; i<=nrows(A); i++ )478 {479 C = A[i,1]*B;480 for( j=2; j<=ncols(A); j++ )481 {482 C = concat(C,A[i,j]*B);483 }484 D = concat(D,transpose(C));485 }486 D = transpose(D);487 return(submat(D,2..nrows(D),1..ncols(D)));488 }489 example490 { "EXAMPLE:"; echo = 2;491 ring r=32003,(x,y,z),(c,ds);492 matrix A[3][3]=1,2,3,4,5,6,7,8,9;493 matrix B[2][2]=x,y,0,z;494 print(A);495 print(B);496 print(tensor(A,B));497 458 } 498 459 /////////////////////////////////////////////////////////////////////////////// -
Singular/extra.cc
rb1f3061 rd9ccb8 3773 3773 } 3774 3774 else 3775 /*==================== tensor =================*/3776 if(strcmp(sys_cmd,"tensor")==0)3777 {3778 const short t[]={2,MODUL_CMD,MODUL_CMD};3779 if (iiCheckTypes(h,t,1))3780 {3781 res->data=(void*)mp_Tensor((ideal)h->Data(),(ideal)h->next->Data(),currRing);3782 res->rtyp=MODUL_CMD;3783 return FALSE;3784 }3785 else3786 return TRUE;3787 }3788 else3789 3775 /*==================== GF(p,n) ==================================*/ 3790 3776 if(strcmp(sys_cmd,"GF")==0) -
Singular/iparith.cc
rb1f3061 rd9ccb8 3395 3395 if (TEST_OPT_RETURN_SB) setFlag(res,FLAG_STD); 3396 3396 return FALSE; 3397 3397 } 3398 static BOOLEAN jjTENSOR(leftv res, leftv u, leftv v) 3399 { 3400 ideal A=(ideal)u->Data(); 3401 ideal B=(ideal)v->Data(); 3402 res->data = (char *)sm_Tensor(A,B,currRing); 3403 return FALSE; 3398 3404 } 3399 3405 static BOOLEAN jjVARSTR2(leftv res, leftv u, leftv v) -
Singular/table.h
rb1f3061 rd9ccb8 79 79 //,{ jjWRONG , COLS_CMD, 0, VECTOR_CMD , ALLOW_NC |ALLOW_RING} 80 80 ,{D(jjCOLS), COLS_CMD, INT_CMD, MATRIX_CMD , ALLOW_NC |ALLOW_RING} 81 ,{D(jjCOLS), COLS_CMD, INT_CMD, SMATRIX_CMD , ALLOW_NC |ALLOW_RING} 81 82 ,{D(jjCOLS), COLS_CMD, INT_CMD, IDEAL_CMD , ALLOW_NC |ALLOW_RING} 82 83 ,{D(jjCOLS), COLS_CMD, INT_CMD, MODUL_CMD , ALLOW_NC |ALLOW_RING} … … 253 254 ,{D(jjROWS), ROWS_CMD, INT_CMD, MODUL_CMD , ALLOW_NC |ALLOW_RING} 254 255 ,{D(jjROWS), ROWS_CMD, INT_CMD, MATRIX_CMD , ALLOW_NC |ALLOW_RING} 256 ,{D(jjROWS), ROWS_CMD, INT_CMD, SMATRIX_CMD , ALLOW_NC |ALLOW_RING} 255 257 ,{D(jjROWS_IV), ROWS_CMD, INT_CMD, INTMAT_CMD , ALLOW_NC |ALLOW_RING} 256 258 ,{D(jjROWS_BIM), ROWS_CMD, INT_CMD, BIGINTMAT_CMD , ALLOW_NC |ALLOW_RING} … … 405 407 ,{D(jjTIMES_MA_I2),'*', MATRIX_CMD, INT_CMD, MATRIX_CMD, ALLOW_NC | ALLOW_RING} 406 408 ,{D(jjTIMES_MA), '*', MATRIX_CMD, MATRIX_CMD, MATRIX_CMD, ALLOW_NC | ALLOW_RING} 407 ,{D(jjTIMES_SM), '*', SMATRIX_CMD, SMATRIX_CMD,SMATRIX_CMD, ALLOW_NC | ALLOW_RING}408 409 ,{D(jjTIMES_MA_BI1),'*', MATRIX_CMD, MATRIX_CMD, BIGINT_CMD, ALLOW_NC | ALLOW_RING} 409 410 ,{D(jjTIMES_MA_BI2),'*', MATRIX_CMD, BIGINT_CMD, MATRIX_CMD, ALLOW_NC | ALLOW_RING} 411 ,{D(jjTIMES_SM), '*', SMATRIX_CMD, SMATRIX_CMD,SMATRIX_CMD, ALLOW_NC | ALLOW_RING} 410 412 ,{D(jjTIMES_BIM), '*', BIGINTMAT_CMD, BIGINTMAT_CMD, BIGINTMAT_CMD, ALLOW_NC | ALLOW_RING} 411 413 ,{D(jjOP_BIM_I), '*', BIGINTMAT_CMD, BIGINTMAT_CMD, INT_CMD, ALLOW_NC | ALLOW_RING} … … 747 749 ,{D(jjSYZ_2), SYZYGY_CMD, MODUL_CMD, IDEAL_CMD, STRING_CMD, ALLOW_PLURAL |ALLOW_RING} 748 750 ,{D(jjSYZ_2), SYZYGY_CMD, MODUL_CMD, MODUL_CMD, STRING_CMD, ALLOW_PLURAL |ALLOW_RING} 751 ,{D(jjTENSOR), TENSOR_CMD, SMATRIX_CMD, SMATRIX_CMD,SMATRIX_CMD, ALLOW_PLURAL |ALLOW_RING} 749 752 ,{D(jjVARSTR2), VARSTR_CMD, STRING_CMD, RING_CMD, INT_CMD, ALLOW_NC |ALLOW_RING} 750 753 ,{D(jjWAIT1ST2), WAIT1ST_CMD, INT_CMD, LIST_CMD, INT_CMD, ALLOW_NC |ALLOW_RING} … … 1178 1181 { "system", 0, SYSTEM_CMD, CMD_M}, 1179 1182 { "syz", 0, SYZYGY_CMD , CMD_12}, 1183 { "tensor", 0, TENSOR_CMD , CMD_2}, 1180 1184 { "test", 0, TEST_CMD , CMD_M}, 1181 1185 { "trace", 0, TRACE_CMD , CMD_1}, -
Singular/tok.h
rb1f3061 rd9ccb8 185 185 SYSTEM_CMD, 186 186 SYZYGY_CMD, 187 TENSOR_CMD, 187 188 TEST_CMD, 188 189 TRANSPOSE_CMD,
Note: See TracChangeset
for help on using the changeset viewer.