Changeset 2582 in Sophya


Ignore:
Timestamp:
Jul 29, 2004, 11:39:53 PM (21 years ago)
Author:
ansari
Message:

Tests sur les operations completes ds carrt.cc et modifs adaptation a MulElt(a, res) ds ovharr.cc - Reza 29/07/2004

Location:
trunk/SophyaProg/Tests
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaProg/Tests/Makefile

    r2437 r2582  
    2727endif
    2828ifeq ($(MACHEROS),Darwin)
    29 LIBS := -L$(LIB) -lLinAlg $(LIBS) -L$(EXTLIBPATH) -llapack -lblas -L/sw/lib -lg2c
     29LIBS := -L$(LIB) -lLinAlg $(LIBS) -L$(EXTLIBPATH) -framework Accelerate
    3030endif
    3131
     
    3434#  Sur MacOSX, LinAlg+lapack ne peuvent pas etre mis ds un
    3535#  shared lib (pb symbols globaux)
    36 ifeq ($(MACHEROS),Darwin)
    37 LIBS := -L$(LIB) -lLinAlg $(LIBS) -L$(EXTLIBPATH) -llapack -lblas -lg2c
    38 endif
     36# ifeq ($(MACHEROS),Darwin)
     37# LIBS := -L$(LIB) -lLinAlg $(LIBS) -L$(EXTLIBPATH) -llapack -lblas -lg2c
     38# endif
    3939
    4040LDLIBS := $(LIBS) $(LDLIBS)
  • trunk/SophyaProg/Tests/carrt.cc

    r2581 r2582  
    251251  }
    252252  else cout << "(9) OK   Test C=2A+2*B  OK " << endl;
     253
     254  a = 10;
     255  b = 4;
     256  c = 3*a-2*b;
     257  if (prtlev > 0)  cout << "(10) A=10, B=4, C = 3*A-2*B = " << c << endl;
     258  getMinMax(c, min, max);
     259  if ((min != 22) || (max != 22)) {
     260    cout << "(10) !!! ERROR Test C = 3*A-2*B  Min=" << min << " Max=" << max << endl;
     261    rc += 512;
     262  }
     263  else cout << "(10) OK   Test C = 3*A-2*B  OK " << endl;
     264
     265  c = 3*a+2*b;
     266  if (prtlev > 0)  cout << "(11) A=10, B=4, C = 3*A+2*B = " << c << endl;
     267  getMinMax(c, min, max);
     268  if ((min != 38) || (max != 38)) {
     269    cout << "(11) !!! ERROR Test C = 3*A+2*B  Min=" << min << " Max=" << max << endl;
     270    rc += 512;
     271  }
     272  else cout << "(11) OK   Test C = 3*A+2*B  OK " << endl;
     273
     274  a.MulElt(b+2,c);
     275  if (prtlev > 0)  cout << "(12) A=10, B=4, a.MulElt(b+2,c) = " << c << endl;
     276  getMinMax(c, min, max);
     277  if ((min != 60) || (max != 60)) {
     278    cout << "(12) !!! ERROR Test a.MulElt(b+2,c) Min=" << min << " Max=" << max << endl;
     279    rc += 1024;
     280  }
     281  else cout << "(12) OK   Test A.MulElt(B+2,C)  OK " << endl;
     282
     283  (3*a).DivElt(b+2,c);
     284  if (prtlev > 0)  cout << "(13) A=10, B=4, (3*a).DivElt(b+2,c) C = " << c << endl;
     285  getMinMax(c, min, max);
     286  if ((min != 5) || (max != 5)) {
     287    cout << "(13) !!! ERROR Test (3*a).DivElt(b+2,c) Min=" << min << " Max=" << max << endl;
     288    rc += 1024;
     289  }
     290  else cout << "(13) OK  Test (3*A).DivElt(B+2,C)  OK " << endl;
    253291 
    254292  return(rc);
     
    259297  cout << "\n -----> Testing TMatrix operation TMatrix<r_4>(nr=" << nr << ",nc="
    260298       << nc << " ) " << endl;
    261   cout << " ----> ODO (Diff. Mem. Mapping) A: CMemoryMapping AR,B,C: FortranMemoryMapping" << endl;
     299  cout << " ----> ODO (Diff. Mem. Mapping) A,CC: CMemoryMapping AR,B,C: FortranMemoryMapping" << endl;
    262300
    263301  int rc = 0;
     
    367405  getMinMax(c, min, max);
    368406  if ((fabs(min-2.) > 0.0001) || (fabs(max-2.) > 0.0001)) {
    369     cout << "(9) !!! ERROR Test3 C=2A+2*B  Min=" << min << " Max=" << max << endl;
     407    cout << "(9) !!! ERROR Test C=2A+2*B  Min=" << min << " Max=" << max << endl;
    370408    rc += 256;
    371409  }
    372410  else cout << "(9) OK   Test3 C=2A+2*B  OK " << endl;
    373411
     412// ----------------------
     413// Operation de type array +-*/ array
     414
     415  a = 10;
     416  b = 4;
     417
     418  (3.f*a).SubElt(2.f*b,c);
     419  if (prtlev > 0)  cout << "(10) A=10, B=4, (3*a).SubElt(2*b,c)  C=" << c << endl;
     420  getMinMax(c, min, max);
     421  if ((fabs(min-22.) > 0.0001) || (fabs(max-22.) > 0.0001)) {
     422    cout << "(10) !!! ERROR Test (3*a).SubElt(2*b,c)  Min=" << min << " Max=" << max << endl;
     423    rc += 512;
     424  }
     425  else cout << "(10) OK   Test (3*a).SubElt(2.*b,c)  OK " << endl;
     426
     427  (3.f*a).AddElt(2.f*b,c);
     428  if (prtlev > 0)  cout << "(11) A=10, B=4, (3*a).AddElt(2*b,c) C= " << c << endl;
     429  getMinMax(c, min, max);
     430  if ((fabs(min-38.) > 0.0001) || (fabs(max-38.) > 0.0001)) {
     431    cout << "(11) !!! ERROR Test (3*A).AddElt(2.*B,C)  Min=" << min << " Max=" << max << endl;
     432    rc += 512;
     433  }
     434  else cout << "(11) OK   Test (3*a).AddElt(2*b,c) OK " << endl;
     435
     436  a.MulElt(b+2.f,c);
     437  if (prtlev > 0)  cout << "(12) A=10, B=4, a.MulElt(b+2,c) = " << c << endl;
     438  getMinMax(c, min, max);
     439  if ((fabs(min-60.) > 0.0001) || (fabs(max-60.) > 0.0001)) {
     440    cout << "(12) !!! ERROR Test a.MulElt(b+2,c) Min=" << min << " Max=" << max << endl;
     441    rc += 1024;
     442  }
     443  else cout << "(12) OK   Test A.MulElt(B+2,C)  OK " << endl;
     444
     445  (3.f*a).DivElt(b+2.f,c);
     446  if (prtlev > 0)  cout << "(13) A=10, B=4, (3*a).DivElt(b+2,c) C = " << c << endl;
     447  getMinMax(c, min, max);
     448  if ((fabs(min-5.) > 0.0001) || (fabs(max-5.) > 0.0001)) {
     449    cout << "(13) !!! ERROR Test (3*a).DivElt(b+2,c) Min=" << min << " Max=" << max << endl;
     450    rc += 1024;
     451  }
     452  else cout << "(13) OK  Test (3*A).DivElt(B+2,C)  OK " << endl;
     453
     454  TMatrix<r_4> cc(nr,nc,BaseArray::CMemoryMapping);
     455
     456  (3.f*a).SubElt(2.f*b,cc);
     457  if (prtlev > 0)  cout << "(14) A=10, B=4, (3*a).SubElt(2*b,cc)  " << cc << endl;
     458  getMinMax(cc, min, max);
     459  if ((fabs(min-22.) > 0.0001) || (fabs(max-22.) > 0.0001)) {
     460    cout << "(14) !!! ERROR Test (3*a).SubElt(2*b,cc)  Min=" << min << " Max=" << max << endl;
     461    rc += 2048;
     462  }
     463  else cout << "(14) OK   Test (3*A).SubElt(2*B,CC)  OK " << endl;
     464
     465
     466  (3.f*a).AddElt(2.f*b,cc);
     467  if (prtlev > 0)  cout << "(15) A=10, B=4, (3*a).AddElt(2*b,cc) CC= " << cc << endl;
     468  getMinMax(cc, min, max);
     469  if ((fabs(min-38.) > 0.0001) || (fabs(max-38.) > 0.0001)) {
     470    cout << "(15) !!! ERROR Test (3*a).AddElt(2*b,c)  Min=" << min << " Max=" << max << endl;
     471    rc += 4096;
     472  }
     473  else cout << "(15) OK   Test (3*A).AddElt(2*B,CC) OK " << endl;
     474
     475  a.MulElt(b+2.f,cc);
     476  if (prtlev > 0)  cout << "(16) A=10, B=4, a.MulElt(b+2,c) = " << cc << endl;
     477  getMinMax(cc, min, max);
     478  if ((fabs(min-60.) > 0.0001) || (fabs(max-60.) > 0.0001)) {
     479    cout << "(16) !!! ERROR Test A.MulElt(B+2,CC) Min=" << min << " Max=" << max << endl;
     480    rc += 8192;
     481  }
     482  else cout << "(16) OK   Test A.MulElt(B+2,C)  OK " << endl;
     483
     484  (3.f*a).DivElt(b+2.f,cc);
     485  if (prtlev > 0)  cout << "(17) A=10, B=4, (3*a).DivElt(b+2,cc) C = " << cc << endl;
     486  getMinMax(cc, min, max);
     487  if ((fabs(min-5.) > 0.0001) || (fabs(max-5.) > 0.0001)) {
     488    cout << "(17) !!! ERROR Test (3*a).DivElt(b+2,c) Min=" << min << " Max=" << max << endl;
     489    rc += 16384;
     490  }
     491  else cout << "(17) OK  Test (3*A).DivElt(B+2,CC)  OK " << endl;
    374492  return(rc);
    375493
  • trunk/SophyaProg/Tests/ovharr.cc

    r2413 r2582  
    359359        // m4 = m1*m2 est une multiplication de matrice avec les TMatrix<T>
    360360        Matrix * m4 = new Matrix(*m1);
    361         m4->MulElt(*m2); 
     361        m4->MulElt(*m2,*m4); 
    362362
    363363        delete m1;
     
    385385        Matrix m3 = m1 + m2;
    386386        Matrix m4(m1);
    387         m4.MulElt(m2);
     387        m4.MulElt(m2,m4);
    388388      }
    389389    }
Note: See TracChangeset for help on using the changeset viewer.