Changeset 1419 in Sophya for trunk/SophyaLib/SkyMap/localmap.h
- Timestamp:
- Feb 23, 2001, 12:26:48 PM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaLib/SkyMap/localmap.h
r1217 r1419 104 104 void print(ostream& os) const; 105 105 106 // Operations diverses = , +=, ... 107 108 109 virtual LocalMap<T>& Set(const LocalMap<T>& a); 106 110 inline LocalMap<T>& operator = (const LocalMap<T>& a) {return Set(a);} 107 111 112 // A += -= *= /= x (ajoute, soustrait, ... x a tous les elements) 113 114 //! Fill LocalMap with all elements equal to \b x 115 virtual LocalMap<T>& SetT(T a); 116 inline LocalMap<T>& operator = (T a) {return SetT(a);} 117 118 //! Add \b x to all elements 119 virtual LocalMap<T>& Add(T a); 120 inline LocalMap<T>& operator += (T x) { return Add(x); } 121 //! Substract \b x to all elements 122 virtual LocalMap<T>& Sub(T a); 123 inline LocalMap<T>& operator -= (T x) { return Sub(x); } 124 //! Multiply all elements by \b x 125 virtual LocalMap<T>& Mul(T a); 126 inline LocalMap<T>& operator *= (T x) { return Mul(x); } 127 //! Divide all elements by \b x 128 virtual LocalMap<T>& Div(T a); 129 inline LocalMap<T>& operator /= (T x) { return Div(x); } 130 131 // A += -= (ajoute, soustrait element par element les deux spheres ) 132 //! Operator LocalMap += LocalMap 133 virtual LocalMap<T>& AddElt(const LocalMap<T>& a); 134 inline LocalMap<T>& operator += (const LocalMap<T>& a) { return AddElt(a); } 135 136 137 138 virtual LocalMap<T>& SubElt(const LocalMap<T>& a); 139 //! Operator LocalMap -= LocalMap 140 inline LocalMap<T>& operator -= (const LocalMap<T>& a) { return SubElt(a); } 141 // Multiplication, division element par element les deux LocalMap 142 virtual LocalMap<T>& MulElt(const LocalMap<T>& a); 143 inline LocalMap<T>& operator *= (const LocalMap<T>& a) { return MulElt(a); } 144 145 146 void CloneOrShare(const LocalMap<T>& a); 147 void Share(const LocalMap<T>& a); 148 LocalMap<T>& CopyElt(const LocalMap<T>& a); 108 149 109 150 … … 120 161 121 162 void recopierVariablesSimples(const LocalMap<T>& lm); 122 LocalMap<T>& Set(const LocalMap<T>& a);123 void CloneOrShare(const LocalMap<T>& a);124 LocalMap<T>& CopyElt(const LocalMap<T>& a);125 163 126 164 … … 146 184 }; 147 185 186 //////////////////////////////////////////////////////////////// 187 // Surcharge d'operateurs A (+,-,*,/) (T) x 188 /*! \ingroup LocalMap \fn operator+(const LocalMap<T>&,T) 189 \brief Operator LocalMap = LocalMap + constant */ 190 template <class T> inline LocalMap<T> operator + (const LocalMap<T>& a, T b) 191 {LocalMap<T> result; result.CloneOrShare(a); result.SetTemp(true); 192 result.Add(b); return result;} 193 /*! \ingroup LocalMap \fn operator+(T,const LocalMap<T>&) 194 \brief Operator LocalMap = constant + LocalMap */ 195 template <class T> inline LocalMap<T> operator + (T b,const LocalMap<T>& a) 196 {LocalMap<T> result; result.CloneOrShare(a); result.SetTemp(true); 197 result.Add(b); return result;} 198 199 200 /*! \ingroup LocalMap\fn operator-(const LocalMap<T>&,T) 201 \brief Operator LocalMap = LocalMap - constant */ 202 template <class T> inline LocalMap<T> operator - (const LocalMap<T>& a, T b) 203 {LocalMap<T> result; result.CloneOrShare(a); result.SetTemp(true); 204 result.Sub(b); return result;} 205 206 /*! \ingroup \fn operator-(T,const LocalMap<T>&) 207 \brief Operator LocalMap = constant - LocalMap */ 208 template <class T> inline LocalMap<T> operator - (T b,const LocalMap<T>& a) 209 {LocalMap<T> result; result.CloneOrShare(a); result.SetTemp(true); 210 result.Sub(b,true); return result;} 211 212 /*! \ingroup LocalMap \fn operator*(const LocalMap<T>&,T) 213 \brief Operator LocalMap = LocalMap * constant */ 214 template <class T> inline LocalMap<T> operator * (const LocalMap<T>& a, T b) 215 {LocalMap<T> result; result.CloneOrShare(a); result.SetTemp(true); 216 result.Mul(b); return result;} 217 218 /*! \ingroup LocalMap \fn operator*(T,const LocalMap<T>&) 219 \brief Operator LocalMap = constant * LocalMap */ 220 template <class T> inline LocalMap<T> operator * (T b,const LocalMap<T>& a) 221 {LocalMap<T> result; result.CloneOrShare(a); result.SetTemp(true); 222 result.Mul(b); return result;} 223 224 /*! \ingroup LocalMap \fn operator/(const LocalMap<T>&,T) 225 \brief Operator LocalMap = LocalMap / constant */ 226 template <class T> inline LocalMap<T> operator / (const LocalMap<T>& a, T b) 227 {LocalMap<T> result; result.CloneOrShare(a); result.SetTemp(true); 228 result.Div(b); return result;} 229 230 /*! \ingroup LocalMap \fn operator/(T,const LocalMap<T>&) 231 \brief Operator LocalMap = constant / LocalMap */ 232 template <class T> inline LocalMap<T> operator / (T b, const LocalMap<T>& a) 233 {LocalMap<T> result; result.CloneOrShare(a); result.SetTemp(true); 234 result.Div(b, true); return result;} 235 236 //////////////////////////////////////////////////////////////// 237 // Surcharge d'operateurs C = A (+,-) B 238 239 /*! \ingroup LocalMap \fn operator+(const LocalMap<T>&,const LocalMap<T>&) 240 \brief Operator LocalMap = LocalMap + LocalMap */ 241 template <class T> 242 inline LocalMap<T> operator + (const LocalMap<T>& a,const LocalMap<T>& b) 243 { LocalMap<T> result; result.SetTemp(true); 244 if (b.IsTemp()) { result.Share(b); result.AddElt(a); } 245 else { result.CloneOrShare(a); result.AddElt(b); } 246 return result; } 247 248 /*! \ingroup LocalMap \fn operator-(const LocalMap<T>&,const LocalMap<T>&) 249 \brief Operator LocalMap = LocalMap - LocalMap */ 250 template <class T> 251 inline LocalMap<T> operator - (const LocalMap<T>& a,const LocalMap<T>& b) 252 { LocalMap<T> result; result.SetTemp(true); 253 if (b.IsTemp()) { result.Share(b); result.SubElt(a, true); } 254 else { result.CloneOrShare(a); result.SubElt(b); } 255 return result; } 148 256 149 257
Note:
See TracChangeset
for help on using the changeset viewer.