Changeset 4054 in Sophya for trunk/Eval


Ignore:
Timestamp:
Mar 17, 2012, 11:13:26 PM (14 years ago)
Author:
ansari
Message:

ajout programme telacc.cc pour test rapidite acces aux elements, Reza 17/03/2012

Location:
trunk/Eval/JET
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Eval/JET/makefile

    r2798 r4054  
    11include $(SOPHYABASE)/include/sophyamake.inc
    22
    3 all : tjet
    4         echo 'makefile : tjet made'
     3all : tjet telacc
     4        echo 'makefile : tjet,telacc made'
    55
    66clean :
    7         rm tjet tjet.o  smtx.o
     7        rm tjet tjet.o  smtx.o  telacc telacc.o
    88
    99tjet : tjet.o  smtx.o
     
    1515smtx.o : smtx.cc jet.h smtx.h
    1616        $(CXXCOMPILE) smtx.cc
     17
     18#---------------------------------------------
     19telacc : telacc.o 
     20        $(CXXLINK) -o telacc telacc.o  $(SOPHYAEXTSLBLIST)
     21
     22telacc.o : telacc.cc 
     23        $(CXXCOMPILE) -o telacc.o  telacc.cc
     24#        $(CXXCOMPILE) -g0 -O3 -o telacc.o  telacc.cc
  • trunk/Eval/JET/smtx.cc

    r3257 r4054  
    1717template <class T>
    1818SimpleMatrix<T>::SimpleMatrix()
    19   : MtxSize(), JETExpression<T, JETExpMtx<T> >(), dbv_(&data_, this)
     19  : MtxSize(), JETExpression<T, JETExpMtx<T> >(), dbv_(&data_, this),
     20    data_p_(NULL)
    2021{
    2122  this->Expression().JETExpMtxSet(&data_, this);
     
    2425template <class T>
    2526SimpleMatrix<T>::SimpleMatrix(sa_size_t nr, sa_size_t nc)
    26   : MtxSize(nr, nc), JETExpression<T, JETExpMtx<T> >(), data_(nr*nc), dbv_(&data_, this)
     27  : MtxSize(nr, nc), JETExpression<T, JETExpMtx<T> >(), data_(nr*nc), dbv_(&data_, this),
     28    data_p_(data_.Begin())
    2729{
    2830  this->Expression().JETExpMtxSet(&data_, this);
     
    3133template <class T>
    3234SimpleMatrix<T>::SimpleMatrix(const SimpleMatrix & m)
    33   : MtxSize(m), JETExpression<T, JETExpMtx<T> >(), data_(m.data_), dbv_(&data_, this)
     35  : MtxSize(m), JETExpression<T, JETExpMtx<T> >(), data_(m.data_), dbv_(&data_, this),
     36    data_p_(data_.Begin())   
    3437{
    3538  this->Expression().JETExpMtxSet(&data_, this);
     
    3841template <class T>
    3942SimpleMatrix<T>::SimpleMatrix(const SimpleMatrix & m, bool share)
    40   : MtxSize(m), JETExpression<T, JETExpMtx<T> >(dbv_), data_(m.data_, share), dbv_(&data_, this)
     43  : MtxSize(m), JETExpression<T, JETExpMtx<T> >(dbv_), data_(m.data_, share), dbv_(&data_, this),
     44    data_p_(data_.Begin())
    4145{
    4246}
     
    5559  MtxSize::ReSize(a);
    5660  data_.Realloc(nrow_*ncol_);
     61  data_p_=data_.Begin();
    5762  return;
    5863}
     
    7075    throw(SzMismatchError("SimpleMatrix::Set() Size(a) != Size(b)"));
    7176  data_ = b.data_;
     77  data_p_=data_.Begin(); 
    7278  return(*this);
    7379}
     
    8894    throw RangeCheckError("SimpleMatrix<T>::Init(T c. T s) Size=0");
    8995  for(sa_size_t k=0; k<nrow_*ncol_; k++) {
    90     data_(k) = c; c += step;
     96    data_p_[k] = c; c += step;
    9197  }
    9298  return(*this);
  • trunk/Eval/JET/smtx.h

    r2798 r4054  
    7979 
    8080  inline T operator()(int r, int c) const
    81                 { return data_(r*ncol_+c); }
     81                { return data_p_[r*ncol_+c]; }
    8282  inline T& operator()(int r, int c)
    83                 { return data_(r*ncol_+c); }
     83                { return data_p_[r*ncol_+c]; }
    8484
    8585  inline sa_size_t NRows() const {return nrow_; }
     
    109109protected:
    110110  NDataBlock<T> data_;
     111  T* data_p_;
    111112  JETExpMtx<T> dbv_;
    112113};
  • trunk/Eval/JET/tjet.cc

    r2939 r4054  
    2020//   Test d'expression template sur tableaux
    2121//       Reza - Avril 2003
     22//       revisite : Mars 2012
    2223//--------------------------------------------------------
    2324
     
    8182    SimpleMatrix<r_8> m5(nrow, ncol);
    8283    for(k=0; k<N; k++) {
    83       double xxr = frand01();
    84       double yyr = 2.*frand01();
     84      double xxr = drand01();
     85      double yyr = 2.*drand01();
    8586      for(i=0; i<nrow; i++)
    8687        for(j=0; j<ncol; j++) {
     
    9596    // Calcul m1*c1 + m2*c2 + m3*c3;
    9697    for(k=0; k<N; k++) {
    97       double c1 = frand01() + 1.2;
    98       double c2 = frand01() + 3.5;
    99       double c3 = frand01() + 6.7;
     98      double c1 = drand01() + 1.2;
     99      double c2 = drand01() + 3.5;
     100      double c3 = drand01() + 6.7;
    100101      m5 = m1;  m5.MulCst(c1);
    101102      m4 = m2;  m4.MulCst(c2);
     
    108109
    109110    for(k=0; k<N; k++) {
    110       double c1 = frand01() + 1.2;
    111       double c2 = frand01() + 3.5;
    112       double c3 = frand01() + 6.7;
     111      double c1 = drand01() + 1.2;
     112      double c2 = drand01() + 3.5;
     113      double c3 = drand01() + 6.7;
    113114      m5 = m1*c1+m2*c2+m3*c3;
    114115    }
     
    117118    // Calcul m1*c1 + m1*(m2+c2) + m2*c3;
    118119    for(k=0; k<N; k++) {
    119       double c1 = frand01() + 1.2;
    120       double c2 = frand01() + 3.5;
    121       double c3 = frand01() + 6.7;
     120      double c1 = drand01() + 1.2;
     121      double c2 = drand01() + 3.5;
     122      double c3 = drand01() + 6.7;
    122123      m3 = m1;  m3.MulCst(c1);
    123124      m4 = m2;  m4.AddCst(c2); m4.MulElt(m1);
     
    129130
    130131    for(k=0; k<N; k++) {
    131       double c1 = frand01() + 1.2;
    132       double c2 = frand01() + 3.5;
    133       double c3 = frand01() + 6.7;
     132      double c1 = drand01() + 1.2;
     133      double c2 = drand01() + 3.5;
     134      double c3 = drand01() + 6.7;
    134135      //      m4 = SMExprAdd< r_8, SMExprMtx<r_8>, SMExprMtx<r_8> >( SMExprMtx<r_8>(m1), SMExprMtx<r_8> (m2) ); 
    135136    // Calcul m1*c1 + m1*(m2+c2) + m2*c3;
     
    140141
    141142    for(k=0; k<N; k++) {
    142       double c1 = frand01() + 1.2;
    143       double c2 = frand01() + 3.5;
    144       double c3 = frand01() + 6.7;
     143      double c1 = drand01() + 1.2;
     144      double c2 = drand01() + 3.5;
     145      double c3 = drand01() + 6.7;
    145146    // Calcul m1*c1 + m1*(m2+c2) + m2*c3;
    146147      m5 = m1*c1 + m2 + c2*Sin(c3*m3+m1);
     
    161162    TMatrix<r_8> m5(nrow, ncol);
    162163    for(k=0; k<N; k++) {
    163       double xxr = frand01();
    164       double yyr = 2.*frand01();
     164      double xxr = drand01();
     165      double yyr = 2.*drand01();
    165166      for(i=0; i<nrow; i++)
    166167        for(j=0; j<ncol; j++) {
     
    174175    // Calcul m1*c1 + m2*c2 + m3*c3;
    175176    for(k=0; k<N; k++) {
    176       double c1 = frand01() + 1.2;
    177       double c2 = frand01() + 3.5;
    178       double c3 = frand01() + 6.7;
     177      double c1 = drand01() + 1.2;
     178      double c2 = drand01() + 3.5;
     179      double c3 = drand01() + 6.7;
    179180      /* Changement interface SOPHYA  : 2004-2005 
    180181         m5 = m1;  m5.Mul(c1);
     
    194195
    195196    for(k=0; k<N; k++) {
    196       double c1 = frand01() + 1.2;
    197       double c2 = frand01() + 3.5;
    198       double c3 = frand01() + 6.7;
     197      double c1 = drand01() + 1.2;
     198      double c2 = drand01() + 3.5;
     199      double c3 = drand01() + 6.7;
    199200      m5 = m1*c1+m2*c2+m3*c3;
    200201    }
     
    203204
    204205    for(k=0; k<N; k++) {
    205       double c1 = frand01() + 1.2;
    206       double c2 = frand01() + 3.5;
    207       double c3 = frand01() + 6.7;
     206      double c1 = drand01() + 1.2;
     207      double c2 = drand01() + 3.5;
     208      double c3 = drand01() + 6.7;
    208209    // Calcul m1*c1 + m1*(m2+c2) + m2*c3;
    209210      m5 = m1*c1 + m1 && (m2+c2) + m2*c3;
     
    213214
    214215    for(k=0; k<N; k++) {
    215       double c1 = frand01() + 1.2;
    216       double c2 = frand01() + 3.5;
    217       double c3 = frand01() + 6.7;
     216      double c1 = drand01() + 1.2;
     217      double c2 = drand01() + 3.5;
     218      double c3 = drand01() + 6.7;
    218219      m5 = m1*c1 + m2 + c2*Sin(c3*m3+m1);
    219220    }
     
    231232    r_8 * m5 = new r_8[nrow*ncol];
    232233    for(k=0; k<N; k++) {
    233       double xxr = frand01();
    234       double yyr = 2.*frand01();
     234      double xxr = drand01();
     235      double yyr = 2.*drand01();
    235236      for(i=0; i<nrow*ncol; i++) {
    236237          m1[i] = k*300+10.*i+j+xxr;   
     
    243244    // Calcul m1*c1 + m2*c2 + m3*c3;
    244245    for(k=0; k<N; k++) {
    245       double c1 = frand01() + 1.2;
    246       double c2 = frand01() + 3.5;
    247       double c3 = frand01() + 6.7;
     246      double c1 = drand01() + 1.2;
     247      double c2 = drand01() + 3.5;
     248      double c3 = drand01() + 6.7;
    248249      for(i=0; i<nrow*ncol; i++)
    249250        m5[i] = c1*m1[i]+c2*m2[i]+c3*m3[i];
Note: See TracChangeset for help on using the changeset viewer.