=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/builtin/mattran.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -p -r1.2 -r1.3 --- OpenXM_contrib2/asir2000/builtin/mattran.c 2003/02/22 07:22:16 1.2 +++ OpenXM_contrib2/asir2000/builtin/mattran.c 2018/03/29 01:32:50 1.3 @@ -1,5 +1,5 @@ /* - * $OpenXM$ + * $OpenXM: OpenXM_contrib2/asir2000/builtin/mattran.c,v 1.2 2003/02/22 07:22:16 saito Exp $ */ #include "ca.h" @@ -20,14 +20,14 @@ static void BodyColExh(MAT, int, int); static void BodyColMulAdd(MAT, int, int, pointer); struct ftab mat_tab[] = { - {"mfund",MatFund,-5}, - {"rowm",RowMul,3}, - {"rowx",RowExh,3}, - {"rowa",RowMulAdd,4}, - {"colm",ColMul,3}, - {"colx",ColExh,3}, - {"cola",ColMulAdd,4}, - {0,0,0}, + {"mfund",MatFund,-5}, + {"rowm",RowMul,3}, + {"rowx",RowExh,3}, + {"rowa",RowMulAdd,4}, + {"colm",ColMul,3}, + {"colx",ColExh,3}, + {"cola",ColMulAdd,4}, + {0,0,0}, }; static void @@ -35,64 +35,64 @@ MatFund(arg, rp) NODE arg; Obj *rp; { - MAT mat; - pointer *coe; - Q rowq, row2q, colq, col2q; - int sw, row, row2, col, col2; - sw = QTOS( (Q)ARG0(arg) ); - mat = (MAT)ARG1(arg); - switch (sw) { - case 1: - rowq = (Q)ARG2(arg); - row = QTOS( rowq ); - coe = (pointer)ARG3(arg); - BodyRowMul( mat, row, coe ); - *rp = (Obj)mat; - return; - case 2: - rowq = (Q)ARG2(arg); - row = QTOS( rowq ); - row2q = (Q)ARG3(arg); - row2 = QTOS( row2q ); - BodyRowExh( mat, row, row2 ); - *rp = (Obj)mat; - return; - case 3: - rowq = (Q)ARG2(arg); - row = QTOS( rowq ); - row2q = (Q)ARG3(arg); - row2 = QTOS( row2q ); - coe = (pointer)ARG3(arg); - BodyRowMulAdd( mat, row, row2, coe ); - *rp = (Obj)mat; - return; - case 4: - colq = (Q)ARG2(arg); - col = QTOS( colq ); - coe = (pointer)ARG3(arg); - BodyColMul( mat, col, coe ); - *rp = (Obj)mat; - return; - case 5: - colq = (Q)ARG2(arg); - col = QTOS( colq ); - col2q = (Q)ARG3(arg); - col2 = QTOS( col2q ); - BodyColExh( mat, col, col2 ); - *rp = (Obj)mat; - return; - case 6: - colq = (Q)ARG2(arg); - col = QTOS( colq ); - col2q = (Q)ARG3(arg); - col2 = QTOS( col2q ); - coe = (pointer)ARG3(arg); - BodyColMulAdd( mat, col, col2, coe ); - *rp = (Obj)mat; - default: - return; - *rp = 0; - } + MAT mat; + pointer *coe; + Q rowq, row2q, colq, col2q; + int sw, row, row2, col, col2; + sw = QTOS( (Q)ARG0(arg) ); + mat = (MAT)ARG1(arg); + switch (sw) { + case 1: + rowq = (Q)ARG2(arg); + row = QTOS( rowq ); + coe = (pointer)ARG3(arg); + BodyRowMul( mat, row, coe ); + *rp = (Obj)mat; + return; + case 2: + rowq = (Q)ARG2(arg); + row = QTOS( rowq ); + row2q = (Q)ARG3(arg); + row2 = QTOS( row2q ); + BodyRowExh( mat, row, row2 ); + *rp = (Obj)mat; + return; + case 3: + rowq = (Q)ARG2(arg); + row = QTOS( rowq ); + row2q = (Q)ARG3(arg); + row2 = QTOS( row2q ); + coe = (pointer)ARG3(arg); + BodyRowMulAdd( mat, row, row2, coe ); + *rp = (Obj)mat; + return; + case 4: + colq = (Q)ARG2(arg); + col = QTOS( colq ); + coe = (pointer)ARG3(arg); + BodyColMul( mat, col, coe ); + *rp = (Obj)mat; + return; + case 5: + colq = (Q)ARG2(arg); + col = QTOS( colq ); + col2q = (Q)ARG3(arg); + col2 = QTOS( col2q ); + BodyColExh( mat, col, col2 ); + *rp = (Obj)mat; + return; + case 6: + colq = (Q)ARG2(arg); + col = QTOS( colq ); + col2q = (Q)ARG3(arg); + col2 = QTOS( col2q ); + coe = (pointer)ARG3(arg); + BodyColMulAdd( mat, col, col2, coe ); + *rp = (Obj)mat; + default: + return; + *rp = 0; + } } static void @@ -100,17 +100,17 @@ RowMul(arg, rp) NODE arg; Obj *rp; { - MAT mat; - Q rowq; - pointer *coe; - int row; + MAT mat; + Q rowq; + pointer *coe; + int row; - mat = (MAT)ARG0(arg); - rowq = (Q)ARG1(arg); - row = QTOS( rowq ); - coe = (pointer)ARG2(arg); - BodyRowMul( mat, row , coe ); - *rp = (Obj)mat; + mat = (MAT)ARG0(arg); + rowq = (Q)ARG1(arg); + row = QTOS( rowq ); + coe = (pointer)ARG2(arg); + BodyRowMul( mat, row , coe ); + *rp = (Obj)mat; } static void @@ -118,17 +118,17 @@ RowExh(arg, rp) NODE arg; Obj *rp; { - MAT mat; - Q QIndexA, QIndexB; - int IndexA, IndexB; + MAT mat; + Q QIndexA, QIndexB; + int IndexA, IndexB; - mat = (MAT)ARG0(arg); - QIndexA = (Q)ARG1(arg); - QIndexB = (Q)ARG2(arg); - IndexA = QTOS( QIndexA ); - IndexB = QTOS( QIndexB ); - BodyRowExh( mat, IndexA, IndexB ); - *rp = (Obj)mat; + mat = (MAT)ARG0(arg); + QIndexA = (Q)ARG1(arg); + QIndexB = (Q)ARG2(arg); + IndexA = QTOS( QIndexA ); + IndexB = QTOS( QIndexB ); + BodyRowExh( mat, IndexA, IndexB ); + *rp = (Obj)mat; } static void @@ -136,19 +136,19 @@ RowMulAdd(arg, rp) NODE arg; Obj *rp; { - MAT mat; - Q QIndexA, QIndexB; - int IndexA, IndexB; - pointer *coe; + MAT mat; + Q QIndexA, QIndexB; + int IndexA, IndexB; + pointer *coe; - mat = (MAT)ARG0(arg); - QIndexA = (Q)ARG1(arg); - QIndexB = (Q)ARG2(arg); - coe = (pointer)ARG3(arg); - IndexA = QTOS( QIndexA ); - IndexB = QTOS( QIndexB ); - BodyRowMulAdd( mat, IndexA, IndexB, coe ); - *rp = (Obj)mat; + mat = (MAT)ARG0(arg); + QIndexA = (Q)ARG1(arg); + QIndexB = (Q)ARG2(arg); + coe = (pointer)ARG3(arg); + IndexA = QTOS( QIndexA ); + IndexB = QTOS( QIndexB ); + BodyRowMulAdd( mat, IndexA, IndexB, coe ); + *rp = (Obj)mat; } static void @@ -156,17 +156,17 @@ ColMul(arg, rp) NODE arg; Obj *rp; { - MAT mat; - Q QIndex; - pointer *coe; - int Index; + MAT mat; + Q QIndex; + pointer *coe; + int Index; - mat = (MAT)ARG0(arg); - QIndex = (Q)ARG1(arg); - Index = QTOS( QIndex ); - coe = (pointer)ARG2(arg); - BodyColMul( mat, Index , coe ); - *rp = (Obj)mat; + mat = (MAT)ARG0(arg); + QIndex = (Q)ARG1(arg); + Index = QTOS( QIndex ); + coe = (pointer)ARG2(arg); + BodyColMul( mat, Index , coe ); + *rp = (Obj)mat; } static void @@ -174,17 +174,17 @@ ColExh(arg, rp) NODE arg; Obj *rp; { - MAT mat; - Q QIndexA, QIndexB; - int IndexA, IndexB; + MAT mat; + Q QIndexA, QIndexB; + int IndexA, IndexB; - mat = (MAT)ARG0(arg); - QIndexA = (Q)ARG1(arg); - QIndexB = (Q)ARG2(arg); - IndexA = QTOS( QIndexA ); - IndexB = QTOS( QIndexB ); - BodyColExh( mat, IndexA, IndexB ); - *rp = (Obj)mat; + mat = (MAT)ARG0(arg); + QIndexA = (Q)ARG1(arg); + QIndexB = (Q)ARG2(arg); + IndexA = QTOS( QIndexA ); + IndexB = QTOS( QIndexB ); + BodyColExh( mat, IndexA, IndexB ); + *rp = (Obj)mat; } static void @@ -192,19 +192,19 @@ ColMulAdd(arg, rp) NODE arg; Obj *rp; { - MAT mat; - Q QIndexA, QIndexB; - int IndexA, IndexB; - pointer *coe; + MAT mat; + Q QIndexA, QIndexB; + int IndexA, IndexB; + pointer *coe; - mat = (MAT)ARG0(arg); - QIndexA = (Q)ARG1(arg); - QIndexB = (Q)ARG2(arg); - coe = (pointer)ARG3(arg); - IndexA = QTOS( QIndexA ); - IndexB = QTOS( QIndexB ); - BodyColMulAdd( mat, IndexA, IndexB, coe ); - *rp = (Obj)mat; + mat = (MAT)ARG0(arg); + QIndexA = (Q)ARG1(arg); + QIndexB = (Q)ARG2(arg); + coe = (pointer)ARG3(arg); + IndexA = QTOS( QIndexA ); + IndexB = QTOS( QIndexB ); + BodyColMulAdd( mat, IndexA, IndexB, coe ); + *rp = (Obj)mat; } static void @@ -213,15 +213,15 @@ MAT mat; int row; pointer coe; { - int size, i; - pointer *t, *matrow; + int size, i; + pointer *t, *matrow; - size = mat->col; - matrow = BDY(mat)[row]; - for ( i = 0; i < size; i++ ) { - mulr(CO,(Obj)matrow[i],(Obj)coe,(Obj *)&t); - matrow[i]=(Obj)t; - } + size = mat->col; + matrow = BDY(mat)[row]; + for ( i = 0; i < size; i++ ) { + mulr(CO,(Obj)matrow[i],(Obj)coe,(Obj *)&t); + matrow[i]=(Obj)t; + } } static void @@ -229,17 +229,17 @@ BodyRowExh( mat, IndexA, IndexB ) MAT mat; int IndexA, IndexB; { - int i, size; - pointer *t, *PRowA, *PRowB; + int i, size; + pointer *t, *PRowA, *PRowB; - size = mat->col; - PRowA = BDY(mat)[IndexA]; - PRowB = BDY(mat)[IndexB]; - for ( i = 0; i < size; i++ ) { - t = PRowA[i]; - PRowA[i] = PRowB[i]; - PRowB[i] = t; - } + size = mat->col; + PRowA = BDY(mat)[IndexA]; + PRowB = BDY(mat)[IndexB]; + for ( i = 0; i < size; i++ ) { + t = PRowA[i]; + PRowA[i] = PRowB[i]; + PRowB[i] = t; + } } static void @@ -248,18 +248,18 @@ MAT mat; int IndexA, IndexB; pointer coe; { - int i, size; - pointer *t, *PRowA, *PRowB; + int i, size; + pointer *t, *PRowA, *PRowB; - size = mat->col; - PRowA = BDY(mat)[IndexA]; - PRowB = BDY(mat)[IndexB]; + size = mat->col; + PRowA = BDY(mat)[IndexA]; + PRowB = BDY(mat)[IndexB]; - for ( i = 0; i < size; i++ ) { - mulr( CO, (Obj)PRowB[i], (Obj)coe, (Obj *)&t ); - addr( CO, (Obj)PRowA[i], (Obj)t, (Obj *)&t ); - PRowA[i] = t; - } + for ( i = 0; i < size; i++ ) { + mulr( CO, (Obj)PRowB[i], (Obj)coe, (Obj *)&t ); + addr( CO, (Obj)PRowA[i], (Obj)t, (Obj *)&t ); + PRowA[i] = t; + } } static void @@ -268,12 +268,12 @@ MAT mat; int Index; pointer coe; { - int size, i; + int size, i; - size = mat->row; - for ( i = 0; i < size; i++ ) { - mulr(CO, BDY(mat)[i][Index], (Obj)coe, (Obj *)&BDY(mat)[i][Index]); - } + size = mat->row; + for ( i = 0; i < size; i++ ) { + mulr(CO, BDY(mat)[i][Index], (Obj)coe, (Obj *)&BDY(mat)[i][Index]); + } } static void @@ -281,15 +281,15 @@ BodyColExh( mat, IndexA, IndexB ) MAT mat; int IndexA, IndexB; { - int i, size; - pointer *t; + int i, size; + pointer *t; - size = mat->row; - for ( i = 0; i < size; i++ ) { - t = BDY(mat)[i][IndexA]; - BDY(mat)[i][IndexA] = BDY(mat)[i][IndexB]; - BDY(mat)[i][IndexB] = t; - } + size = mat->row; + for ( i = 0; i < size; i++ ) { + t = BDY(mat)[i][IndexA]; + BDY(mat)[i][IndexA] = BDY(mat)[i][IndexB]; + BDY(mat)[i][IndexB] = t; + } } static void @@ -298,12 +298,12 @@ MAT mat; int IndexA, IndexB; pointer coe; { - int i, size; - pointer *t; + int i, size; + pointer *t; - size = mat->row; - for ( i = 0; i < size; i++ ) { - mulr( CO, BDY(mat)[i][IndexB], coe, (Obj *)&t ); - addr( CO, BDY(mat)[i][IndexA], (Obj)t, (Obj *)&BDY(mat)[i][IndexA]); - } + size = mat->row; + for ( i = 0; i < size; i++ ) { + mulr( CO, BDY(mat)[i][IndexB], coe, (Obj *)&t ); + addr( CO, BDY(mat)[i][IndexA], (Obj)t, (Obj *)&BDY(mat)[i][IndexA]); + } }