1 #ifndef SimTK_SIMMATRIX_VECTORBASE_H_
2 #define SimTK_SIMMATRIX_VECTORBASE_H_
169 { Base::template rowScaleInPlace<EE>(v);
return *
this; }
183 "Vector::normRMS() only defined for scalar elements.");
184 const int n =
nrow();
186 if (worstOne) *worstOne = -1;
194 for (
int i=0; i<n; ++i) {
196 if (v2 > maxsq) maxsq=v2, *worstOne=i;
200 for (
int i=0; i<n; ++i) {
219 "Vector::weightedNormRMS() only defined for scalar elements"
221 const int n =
nrow();
224 if (worstOne) *worstOne = -1;
232 for (
int i=0; i<n; ++i) {
234 if (wv2 > maxsq) maxsq=wv2, *worstOne=i;
238 for (
int i=0; i<n; ++i) {
254 "Vector::normInf() only defined for scalar elements.");
255 const int n =
nrow();
257 if (worstOne) *worstOne = -1;
264 for (
int i=0; i<n; ++i) {
266 if (a > maxabs) maxabs=a, *worstOne=i;
269 for (
int i=0; i<n; ++i) {
271 if (a > maxabs) maxabs=a;
287 "Vector::weightedNormInf() only defined for scalar elements"
289 const int n =
nrow();
292 if (worstOne) *worstOne = -1;
299 for (
int i=0; i<n; ++i) {
301 if (wv > maxabs) maxabs=wv, *worstOne=i;
304 for (
int i=0; i<n; ++i) {
306 if (wv > maxabs) maxabs=wv;
333 { Base::template elementwiseMultiplyInPlace<EE>(r);
return *
this; }
335 { Base::template elementwiseMultiply<EE>(v,out); }
337 {
typename EltResult<EE>::Mul out(
nrow()); Base::template elementwiseMultiply<EE>(v,out);
return out; }
341 { Base::template elementwiseMultiplyFromLeftInPlace<EE>(r);
return *
this; }
342 template <
class EE>
inline void
347 Base::template elementwiseMultiplyFromLeft<EE>(v,out);
353 Base::template elementwiseMultiplyFromLeft<EE>(v,out);
359 { Base::template elementwiseDivideInPlace<EE>(r);
return *
this; }
361 { Base::template elementwiseDivide<EE>(v,out); }
363 {
typename EltResult<EE>::Dvd out(
nrow()); Base::template elementwiseDivide<EE>(v,out);
return out; }
367 { Base::template elementwiseDivideFromLeftInPlace<EE>(r);
return *
this; }
368 template <
class EE>
inline void
373 Base::template elementwiseDivideFromLeft<EE>(v,out);
379 Base::template elementwiseDivideFromLeft<EE>(v,out);
475 #endif // SimTK_SIMMATRIX_VECTORBASE_H_