Changeset 1636 in Sophya for trunk/SophyaLib/TArray/basarr.cc


Ignore:
Timestamp:
Aug 13, 2001, 2:38:17 PM (24 years ago)
Author:
ansari
Message:

Correction bugs ds UpdateSize (calcul AvgStep() et configuration Vecteur/Matrices + protection constructeur TArray() depuis NDataBlock - Reza 13/8/2001

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaLib/TArray/basarr.cc

    r1583 r1636  
    206206void BaseArray::SetMemoryMapping(short mm)
    207207{
    208   if (mm == SameMemoryMapping) return;
    209   if (mm == AutoMemoryMapping)  mm = default_memory_mapping;
    210   if ( (mm != CMemoryMapping) && (mm != FortranMemoryMapping) ) return;
    211   short vt = (marowi_ == veceli_) ? ColumnVector : RowVector;
     208  if (mm == SameMemoryMapping) mm = GetMemoryMapping();
     209  else if (mm == AutoMemoryMapping)  mm = default_memory_mapping;
     210  if ( (mm != CMemoryMapping) && (mm != FortranMemoryMapping) ) mm = CMemoryMapping;
     211  short vt = GetVectorType();
    212212  if (mm == CMemoryMapping) {
    213213    marowi_ =  1;  macoli_ = 0;
     
    216216    marowi_ =  0;  macoli_ = 1;
    217217  }
    218   if ( (ndim_ == 2) && ((size_[0] == 1) || (size_[1] == 1)) ) {
     218  if ( (ndim_ == 2) && ((size_[0] == 1) || (size_[1] == 1))
     219       && (size_[0] != size_[1]) ) {
    219220    // Choix automatique Vecteur ligne ou colonne
    220221    if ( size_[macoli_] == 1)  veceli_ = marowi_;
    221222    else veceli_ = macoli_;
    222223  }
    223   else   veceli_ = (vt ==  ColumnVector ) ?  marowi_ : macoli_;
     224  else  veceli_ = (vt ==  ColumnVector ) ?  marowi_ : macoli_;
    224225}
    225226
     
    562563  }
    563564  offset_ = offset;
    564   // Default for matrices : Memory organisation and Vector type
    565   if (default_memory_mapping == CMemoryMapping) {
    566     marowi_ =  1;  macoli_ = 0;
    567   }
    568   else {
    569     marowi_ =  0;  macoli_ = 1;
    570   }
    571   veceli_ = (default_vector_type ==  ColumnVector ) ?  marowi_ : macoli_;
    572565  // Update OK
    573566  ndim_ = ndim;
     567  // Default for matrices : Memory organisation and Vector type
     568  SetMemoryMapping(BaseArray::SameMemoryMapping);
    574569  return true;
    575570}
     
    614609  sa_size_t plast = 0;
    615610  for(k=0; k<ndim; k++)   plast += (siz[k]-1)*step[k];
    616   if (plast == minstep*totsize_ )  moystep_ = minstep;
     611  if (plast == minstep*(totsize_-1) )  moystep_ = minstep;
    617612  else moystep_ = 0;
    618613  minstep_ = minstep;
    619614  offset_ = offset;
    620   // Default for matrices : Memory organisation and Vector type
    621   if (default_memory_mapping == CMemoryMapping) {
    622     marowi_ =  1;  macoli_ = 0;
    623   }
    624   else {
    625     marowi_ =  0;  macoli_ = 1;
    626   }
    627   veceli_ = (default_vector_type ==  ColumnVector ) ?  marowi_ : macoli_;
    628615  // Update OK
    629616  ndim_ = ndim;
     617  // Default for matrices : Memory organisation and Vector type
     618  SetMemoryMapping(BaseArray::SameMemoryMapping);
    630619  return true;
    631620}
Note: See TracChangeset for help on using the changeset viewer.