Index: trunk/SophyaLib/TArray/tarray.cc
===================================================================
--- trunk/SophyaLib/TArray/tarray.cc	(revision 804)
+++ trunk/SophyaLib/TArray/tarray.cc	(revision 813)
@@ -234,8 +234,8 @@
 //  Possibilite de // , vectorisation 
 template <class T>
-TArray<T>& TArray<T>::Set(Sequence seq)
-{
-  if (NbDimensions() < 1) 
-    throw RangeCheckError("TArray<T>::Set(Sequence ) - Not Allocated Array ! ");
+TArray<T>& TArray<T>::SetSeq(Sequence seq)
+{
+  if (NbDimensions() < 1) 
+    throw RangeCheckError("TArray<T>::SetSeq(Sequence ) - Not Allocated Array ! ");
   T * pe;
   uint_8 j,k;
@@ -246,10 +246,12 @@
   }
   else {    // Non regular data spacing ...
-    uint_4 ka = MaxSizeKA();
+    //    uint_4 ka = MaxSizeKA();
+    uint_4 ka = 0;
     uint_8 step = Step(ka);
     uint_8 gpas = Size(ka);
-    for(j=0; j<totsize_; j += Size(ka))  {
-      pe = mNDBlock.Begin()+Offset(j);
-      for(k=0; k<gpas; k++)  pe[k*step] = seq(j+k);
+    uint_8 naxa = Size()/Size(ka);
+    for(j=0; j<naxa; j++)  {
+      pe = mNDBlock.Begin()+Offset(ka,j);
+      for(k=0; k<gpas; k++)  pe[k*step] = seq(j*gpas+k);
     }
   }
@@ -260,8 +262,8 @@
 
 template <class T>
-TArray<T>& TArray<T>::Set(T x)
-{
-  if (NbDimensions() < 1) 
-    throw RangeCheckError("TArray<T>::Set(T )  - Not Allocated Array ! ");
+TArray<T>& TArray<T>::SetT(T x)
+{
+  if (NbDimensions() < 1) 
+    throw RangeCheckError("TArray<T>::SetT(T )  - Not Allocated Array ! ");
   T * pe;
   uint_8 j,k;
@@ -276,6 +278,7 @@
     uint_8 step = Step(ka);
     uint_8 gpas = Size(ka)*step;
-    for(j=0; j<totsize_; j += Size(ka))  {
-      pe = mNDBlock.Begin()+Offset(j);
+    uint_8 naxa = Size()/Size(ka);
+    for(j=0; j<naxa; j++)  {
+      pe = mNDBlock.Begin()+Offset(ka,j);
       for(k=0; k<gpas; k+=step)  pe[k] = x;
     }
@@ -301,6 +304,7 @@
     uint_8 step = Step(ka);
     uint_8 gpas = Size(ka)*step;
-    for(j=0; j<totsize_; j += Size(ka))  {
-      pe = mNDBlock.Begin()+Offset(j);
+    uint_8 naxa = Size()/Size(ka);
+    for(j=0; j<naxa; j++)  {
+      pe = mNDBlock.Begin()+Offset(ka,j);
       for(k=0; k<gpas; k+=step)  pe[k] += x;
     }
@@ -326,6 +330,7 @@
     uint_8 step = Step(ka);
     uint_8 gpas = Size(ka)*step;
-    for(j=0; j<totsize_; j += Size(ka))  {
-      pe = mNDBlock.Begin()+Offset(j);
+    uint_8 naxa = Size()/Size(ka);
+    for(j=0; j<naxa; j++)  {
+      pe = mNDBlock.Begin()+Offset(ka,j);
       for(k=0; k<gpas; k+=step)  pe[k] -= x;
     }
@@ -351,6 +356,7 @@
     uint_8 step = Step(ka);
     uint_8 gpas = Size(ka)*step;
-    for(j=0; j<totsize_; j += Size(ka))  {
-      pe = mNDBlock.Begin()+Offset(j);
+    uint_8 naxa = Size()/Size(ka);
+    for(j=0; j<naxa; j++)  {
+      pe = mNDBlock.Begin()+Offset(ka,j);
       for(k=0; k<gpas; k+=step)  pe[k] *= x;
     }
@@ -376,6 +382,7 @@
     uint_8 step = Step(ka);
     uint_8 gpas = Size(ka)*step;
-    for(j=0; j<totsize_; j += Size(ka))  {
-      pe = mNDBlock.Begin()+Offset(j);
+    uint_8 naxa = Size()/Size(ka);
+    for(j=0; j<naxa; j++)  {
+      pe = mNDBlock.Begin()+Offset(ka,j);
       for(k=0; k<gpas; k+=step)  pe[k] /= x;
     }
@@ -402,6 +409,7 @@
     uint_8 step = Step(ka);
     uint_8 gpas = Size(ka)*step;
-    for(j=0; j<totsize_; j += Size(ka))  {
-      pe = mNDBlock.Begin()+Offset(j);
+    uint_8 naxa = Size()/Size(ka);
+    for(j=0; j<naxa; j++)  {
+      pe = mNDBlock.Begin()+Offset(ka,j);
       for(k=0; k<gpas; k+=step)  pe[k] = x-pe[k];
     }
@@ -427,6 +435,7 @@
     uint_8 step = Step(ka);
     uint_8 gpas = Size(ka)*step;
-    for(j=0; j<totsize_; j += Size(ka))  {
-      pe = mNDBlock.Begin()+Offset(j);
+    uint_8 naxa = Size()/Size(ka);
+    for(j=0; j<naxa; j++)  {
+      pe = mNDBlock.Begin()+Offset(ka,j);
       for(k=0; k<gpas; k+=step)  pe[k] = x/pe[k];
     }
@@ -442,5 +451,6 @@
   if (NbDimensions() < 1) 
     throw RangeCheckError("TArray<T>::AddElt(const TArray<T>& )  - Not Allocated Array ! ");
-  if (!CompareSizes(a)) throw(SzMismatchError("TArray<T>::AddElt(const TArray<T>&)")) ;
+  if (!CompareSizes(a)) 
+    throw(SzMismatchError("TArray<T>::AddElt(const TArray<T>&) SizeMismatch")) ;
 
   T * pe;
@@ -460,7 +470,8 @@
     uint_8 stepa = a.Step(ax);
     uint_8 gpas = Size(ax)*step;
-    for(j=0; j<totsize_; j += Size(ax))  {
-      pe = mNDBlock.Begin()+Offset(j);
-      pea = a.DataBlock().Begin()+a.Offset(j);
+    uint_8 naxa = Size()/Size(ax);
+    for(j=0; j<naxa; j++)  {
+      pe = mNDBlock.Begin()+Offset(ax,j);
+      pea = a.DataBlock().Begin()+a.Offset(ax,j);
       for(k=0, ka=0;  k<gpas;  k+=step, ka+=stepa)  pe[k] += pea[ka]; 
     }
@@ -474,5 +485,6 @@
   if (NbDimensions() < 1) 
     throw RangeCheckError("TArray<T>::SubElt(const TArray<T>& )  - Not Allocated Array ! ");
-  if (!CompareSizes(a)) throw(SzMismatchError("TArray<T>::SubElt(const TArray<T>&)")) ;
+  if (!CompareSizes(a)) 
+    throw(SzMismatchError("TArray<T>::SubElt(const TArray<T>&) SizeMismatch")) ;
 
   T * pe;
@@ -492,7 +504,8 @@
     uint_8 stepa = a.Step(ax);
     uint_8 gpas = Size(ax)*step;
-    for(j=0; j<totsize_; j += Size(ax))  {
-      pe = mNDBlock.Begin()+Offset(j);
-      pea = a.DataBlock().Begin()+a.Offset(j);
+    uint_8 naxa = Size()/Size(ax);
+    for(j=0; j<naxa; j++)  {
+      pe = mNDBlock.Begin()+Offset(ax,j);
+      pea = a.DataBlock().Begin()+a.Offset(ax,j);
       for(k=0, ka=0;  k<gpas;  k+=step, ka+=stepa)  pe[k] -= pea[ka]; 
     }
@@ -507,5 +520,6 @@
   if (NbDimensions() < 1) 
     throw RangeCheckError("TArray<T>::MulElt(const TArray<T>& )  - Not Allocated Array ! ");
-  if (!CompareSizes(a)) throw(SzMismatchError("TArray<T>::MulElt(const TArray<T>&)")) ;
+  if (!CompareSizes(a)) 
+    throw(SzMismatchError("TArray<T>::MulElt(const TArray<T>&) SizeMismatch")) ;
 
   T * pe;
@@ -525,7 +539,8 @@
     uint_8 stepa = a.Step(ax);
     uint_8 gpas = Size(ax)*step;
-    for(j=0; j<totsize_; j += Size(ax))  {
-      pe = mNDBlock.Begin()+Offset(j);
-      pea = a.DataBlock().Begin()+a.Offset(j);
+    uint_8 naxa = Size()/Size(ax);
+    for(j=0; j<naxa; j++)  {
+      pe = mNDBlock.Begin()+Offset(ax,j);
+      pea = a.DataBlock().Begin()+a.Offset(ax,j);
       for(k=0, ka=0;  k<gpas;  k+=step, ka+=stepa)  pe[k] *= pea[ka]; 
     }
@@ -540,5 +555,6 @@
   if (NbDimensions() < 1) 
     throw RangeCheckError("TArray<T>::DivElt(const TArray<T>& )  - Not Allocated Array ! ");
-  if (!CompareSizes(a)) throw(SzMismatchError("TArray<T>::DivElt(const TArray<T>&)")) ;
+  if (!CompareSizes(a)) 
+    throw(SzMismatchError("TArray<T>::DivElt(const TArray<T>&) SizeMismatch")) ;
 
   T * pe;
@@ -558,7 +574,8 @@
     uint_8 stepa = a.Step(ax);
     uint_8 gpas = Size(ax)*step;
-    for(j=0; j<totsize_; j += Size(ax))  {
-      pe = mNDBlock.Begin()+Offset(j);
-      pea = a.DataBlock().Begin()+a.Offset(j);
+    uint_8 naxa = Size()/Size(ax);
+    for(j=0; j<naxa; j++)  {
+      pe = mNDBlock.Begin()+Offset(ax,j);
+      pea = a.DataBlock().Begin()+a.Offset(ax,j);
       for(k=0, ka=0;  k<gpas;  k+=step, ka+=stepa)  pe[k] /= pea[ka]; 
     }
@@ -572,5 +589,6 @@
   if (NbDimensions() < 1) 
     throw RangeCheckError("TArray<T>::CopyElt(const TArray<T>& )  - Not Allocated Array ! ");
-  if (!CompareSizes(a)) throw(SzMismatchError("TArray<T>::MultElt(const TArray<T>&)")) ;
+  if (!CompareSizes(a)) 
+    throw(SzMismatchError("TArray<T>::MultElt(const TArray<T>&) SizeMismatch")) ;
 
   T * pe;
@@ -590,7 +608,8 @@
     uint_8 stepa = a.Step(ax);
     uint_8 gpas = Size(ax)*step;
-    for(j=0; j<totsize_; j += Size(ax))  {
-      pe = mNDBlock.Begin()+Offset(j);
-      pea = a.DataBlock().Begin()+a.Offset(j);
+    uint_8 naxa = Size()/Size(ax);
+    for(j=0; j<naxa; j++)  {
+      pe = mNDBlock.Begin()+Offset(ax,j);
+      pea = a.DataBlock().Begin()+a.Offset(ax,j);
       for(k=0, ka=0;  k<gpas;  k+=step, ka+=stepa)  pe[k] = pea[ka]; 
     }
@@ -619,6 +638,7 @@
     uint_8 step = Step(ka);
     uint_8 gpas = Size(ka)*step;
-    for(j=0; j<totsize_; j += Size(ka))  {
-      pe = mNDBlock.Begin()+Offset(j);
+    uint_8 naxa = Size()/Size(ka);
+    for(j=0; j<naxa; j++)  {
+      pe = mNDBlock.Begin()+Offset(ka,j);
       for(k=0; k<gpas; k+=step)  ret += pe[k] ;
     }
@@ -645,6 +665,7 @@
     uint_8 step = Step(ka);
     uint_8 gpas = Size(ka)*step;
-    for(j=0; j<totsize_; j += Size(ka))  {
-      pe = mNDBlock.Begin()+Offset(j);
+    uint_8 naxa = Size()/Size(ka);
+    for(j=0; j<naxa; j++)  {
+      pe = mNDBlock.Begin()+Offset(ka,j);
       for(k=0; k<gpas; k+=step)  ret *= pe[k] ;
     }
@@ -660,7 +681,9 @@
 
 template <class T>
-string TArray<T>::DataType() const
-{
-  string rs = typeid(T).name();
+string TArray<T>::InfoString() const
+{
+  string rs = "TArray<" ;
+  rs += typeid(T).name();
+  rs += "> ";
   return(rs);
 }
@@ -693,5 +716,5 @@
     }
   }
-  os << "\n" << endl;
+  os <<  endl;
 }
 
