Index: trunk/SophyaLib/TArray/tmatrix.h
===================================================================
--- trunk/SophyaLib/TArray/tmatrix.h	(revision 2421)
+++ trunk/SophyaLib/TArray/tmatrix.h	(revision 2564)
@@ -93,11 +93,11 @@
   inline  TMatrix<T>&  operator = (T x)             { SetT(x); return(*this); }
   //! += : add constant value \b x to matrix
-  inline  TMatrix<T>&  operator += (T x)            { Add(x); return(*this); }
+  inline  TMatrix<T>&  operator += (T x)            { AddCst(x,*this); return(*this); }
   //! -= : substract constant value \b x to matrix
-  inline  TMatrix<T>&  operator -= (T x)            { Sub(x); return(*this); }
+  inline  TMatrix<T>&  operator -= (T x)            { SubCst(x,*this); return(*this); }
   //! *= : multiply matrix by constant value \b x
-  inline  TMatrix<T>&  operator *= (T x)            { Mul(x); return(*this); }
+  inline  TMatrix<T>&  operator *= (T x)            { MulCst(x,*this); return(*this); }
   //! /= : divide matrix by constant value \b x
-  inline  TMatrix<T>&  operator /= (T x)            { Div(x); return(*this); }
+  inline  TMatrix<T>&  operator /= (T x)            { DivCst(x,*this); return(*this); }
 
   //  operations avec matrices 
@@ -149,48 +149,48 @@
   \brief Operator TMatrix = TMatrix + constant */
 template <class T> inline TMatrix<T> operator + (const TMatrix<T>& a, T b)
-    {TMatrix<T> result; result.CloneOrShare(a); result.SetTemp(true); 
-    result.Add(b); return result;}
+    {TMatrix<T> result; result.SetTemp(true); 
+    a.AddCst(b,result); return result;}
 
 /*! \ingroup TMatrix \fn operator+(T,const TMatrix<T>&)
   \brief Operator TMatrix = constant + TMatrix */
 template <class T> inline TMatrix<T> operator + (T b,const TMatrix<T>& a)
-    {TMatrix<T> result; result.CloneOrShare(a); result.SetTemp(true); 
-    result.Add(b); return result;}
+    {TMatrix<T> result; result.SetTemp(true); 
+    a.AddCst(b,result); return result;}
 
 /*! \ingroup TMatrix \fn operator-(const TMatrix<T>&,T)
   \brief Operator TMatrix = TMatrix - constant */
 template <class T> inline TMatrix<T> operator - (const TMatrix<T>& a, T b)
-    {TMatrix<T> result; result.CloneOrShare(a); result.SetTemp(true); 
-    result.Sub(b); return result;}
+    {TMatrix<T> result; result.SetTemp(true); 
+    a.SubCst(b,result); return result;}
 
 /*! \ingroup TMatrix \fn operator-(T,const TMatrix<T>&)
   \brief Operator TMatrix = constant - TMatrix */
 template <class T> inline TMatrix<T> operator - (T b,const TMatrix<T>& a)
-    {TMatrix<T> result; result.CloneOrShare(a); result.SetTemp(true); 
-    result.Sub(b,true); return result;}
+    {TMatrix<T> result; result.SetTemp(true); 
+    a.SubCst(b,result,true); return result;}
 
 /*! \ingroup TMatrix \fn operator*(const TMatrix<T>&,T)
   \brief Operator TMatrix = TMatrix * constant */
 template <class T> inline TMatrix<T> operator * (const TMatrix<T>& a, T b)
-    {TMatrix<T> result; result.CloneOrShare(a); result.SetTemp(true); 
-    result.Mul(b); return result;}
+    {TMatrix<T> result; result.SetTemp(true); 
+    a.MulCst(b,result); return result;}
 
 /*! \ingroup TMatrix \fn operator*(T,const TMatrix<T>&)
   \brief Operator TMatrix = constant * TMatrix */
 template <class T> inline TMatrix<T> operator * (T b,const TMatrix<T>& a)
-    {TMatrix<T> result; result.CloneOrShare(a); result.SetTemp(true); 
-    result.Mul(b); return result;}
+    {TMatrix<T> result; result.SetTemp(true); 
+    a.MulCst(b,result); return result;}
 
 /*! \ingroup TMatrix \fn operator/(const TMatrix<T>&,T)
   \brief Operator TMatrix = TMatrix / constant */
 template <class T> inline TMatrix<T> operator / (const TMatrix<T>& a, T b)
-    {TMatrix<T> result; result.CloneOrShare(a); result.SetTemp(true); 
-    result.Div(b); return result;}
+    {TMatrix<T> result; result.SetTemp(true); 
+    a.DivCst(b,result); return result;}
 
 /*! \ingroup TMatrix \fn operator/(T,const TMatrix<T>&)
   \brief Operator TMatrix = constant / TMatrix  */
 template <class T> inline TMatrix<T> operator / (T b, const TMatrix<T>& a)
-    {TMatrix<T> result; result.CloneOrShare(a); result.SetTemp(true); 
-    result.Div(b, true); return result;}
+    {TMatrix<T> result; result.SetTemp(true); 
+    a.Div(b,result,true); return result;}
 
 ////////////////////////////////////////////////////////////////
