[BACK]Return to mat.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / engine

Diff for /OpenXM_contrib2/asir2000/engine/mat.c between version 1.5 and 1.7

version 1.5, 2002/03/01 06:27:23 version 1.7, 2002/05/27 03:00:12
Line 45 
Line 45 
  * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,   * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,
  * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.   * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.
  *   *
  * $OpenXM: OpenXM_contrib2/asir2000/engine/mat.c,v 1.4 2002/01/04 17:08:23 saito Exp $   * $OpenXM: OpenXM_contrib2/asir2000/engine/mat.c,v 1.6 2002/04/10 02:59:10 saito Exp $
 */  */
 #include "ca.h"  #include "ca.h"
 #include "../parse/parse.h"  #include "../parse/parse.h"
Line 455  MAT a,b,*c;
Line 455  MAT a,b,*c;
                 /* C21 = w1+u1+A22*(B21-t2) */                  /* C21 = w1+u1+A22*(B21-t2) */
                 submat(vl, b21, t2, &ans1);                  submat(vl, b21, t2, &ans1);
                 mulmatmat(vl, a22, ans1, &ans2);                  mulmatmat(vl, a22, ans1, &ans2);
                   addmat(vl, w1, u1, &ans1);
                   addmat(vl, ans1, ans2, &c21);
   
                   /* C22 = w1 + u1 + v1 */
                   addmat(vl, ans1, v1, &c22);
           }
   
           for(i =0; i<c11->row; i++) {
                   for ( j=0; j < c11->col; j++) {
                           t->body[i][j] = c11->body[i][j];
                   }
           }
           if (pflag1 == 0) {
                           k = c21->row;
           } else {
                           k = c21->row - 1;
           }
           for(i =0; i<k; i++) {
                   for ( j=0; j < c21->col; j++) {
                           t->body[i+c11->row][j] = c21->body[i][j];
                   }
           }
           if (pflag2 == 0) {
                   h = c12->col;
           } else {
                   h = c12->col -1;
           }
           for(i =0; i<c12->row; i++) {
                 for ( j=0; j < k; j++) {                  for ( j=0; j < k; j++) {
                         t->body[i][j+c11->col] = c12->body[i][j];                          t->body[i][j+c11->col] = c12->body[i][j];
                 }                  }
Line 495  VECT *c;
Line 523  VECT *c;
         else if ( a->col != b->len ) {          else if ( a->col != b->len ) {
                 *c = 0; error("mulmatvect : size mismatch");                  *c = 0; error("mulmatvect : size mismatch");
         } else {          } else {
                   for ( i = 0; i < b->len; i++ )
                           if ( BDY(b)[i] && OID((Obj)BDY(b)[i]) > O_R )
                                   error("mulmatvect : invalid argument");
                 arow = a->row; m = a->col;                  arow = a->row; m = a->col;
                 MKVECT(t,arow);                  MKVECT(t,arow);
                 for ( i = 0; i < arow; i++ ) {                  for ( i = 0; i < arow; i++ ) {
Line 522  VECT *c;
Line 553  VECT *c;
         else if ( a->len != b->row ) {          else if ( a->len != b->row ) {
                 *c = 0; error("mulvectmat : size mismatch");                  *c = 0; error("mulvectmat : size mismatch");
         } else {          } else {
                   for ( i = 0; i < a->len; i++ )
                           if ( BDY(a)[i] && OID((Obj)BDY(a)[i]) > O_R )
                                   error("mulvectmat : invalid argument");
                 bcol = b->col; m = a->len;                  bcol = b->col; m = a->len;
                 MKVECT(t,bcol);                  MKVECT(t,bcol);
                 for ( j = 0; j < bcol; j++ ) {                  for ( j = 0; j < bcol; j++ ) {

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.7

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>