38 template<
class Form,
class Cmpt,
int nCmpt>
43 template<
class Form,
class Cmpt,
int nCmpt>
55 template<
class Form,
class Cmpt,
int nCmpt>
62 template<
class Form,
class Cmpt,
int nCmpt>
73 "VectorSpace<Form, Cmpt, nCmpt>::component(direction) const"
74 ) <<
"index out of range"
83 template<
class Form,
class Cmpt,
int nCmpt>
92 FatalErrorIn(
"VectorSpace<Form, Cmpt, nCmpt>::component(direction)")
93 <<
"index out of range"
102 template<
class Form,
class Cmpt,
int nCmpt>
114 "VectorSpace<Form, Cmpt, nCmpt>::component(Cmpt&, direction) const"
115 ) <<
"index out of range"
124 template<
class Form,
class Cmpt,
int nCmpt>
136 "VectorSpace<Form, Cmpt, nCmpt>::"
137 "replace(direction, const Cmpt&) const"
138 ) <<
"index out of range"
149 template<
class Form,
class Cmpt,
int nCmpt>
160 "VectorSpace<Form, Cmpt, nCmpt>::operator[](direction d) const"
161 ) <<
"index out of range"
170 template<
class Form,
class Cmpt,
int nCmpt>
179 FatalErrorIn(
"VectorSpace<Form, Cmpt, nCmpt>::operator[](direction d)")
180 <<
"index out of range"
189 template<
class Form,
class Cmpt,
int nCmpt>
199 template<
class Form,
class Cmpt,
int nCmpt>
209 template<
class Form,
class Cmpt,
int nCmpt>
219 template<
class Form,
class Cmpt,
int nCmpt>
229 template<
class Form,
class Cmpt,
int nCmpt>
241 template<
class Form,
class Cmpt,
int nCmpt>
252 template<
class Form,
class Cmpt,
int nCmpt>
266 template<
class Form,
class Cmpt,
int nCmpt>
278 template<
class Form,
class Cmpt,
int nCmpt>
286 return static_cast<const Form&
>(v);
291 template<
class Form,
class Cmpt,
int nCmpt>
299 return sqr(static_cast<const Form&>(v));
303 template<
class Form,
class Cmpt,
int nCmpt>
315 template<
class Form,
class Cmpt,
int nCmpt>
325 template<
class Form,
class Cmpt,
int nCmpt>
338 template<
class Form,
class Cmpt,
int nCmpt>
339 inline VectorSpace<Form, Cmpt, nCmpt>
cmptDivide
351 template<
class Form,
class Cmpt,
int nCmpt>
352 inline VectorSpace<Form, Cmpt, nCmpt>
stabilise
364 template<
class Form,
class Cmpt,
int nCmpt>
370 Cmpt cMax = vs.
v_[0];
376 template<
class Form,
class Cmpt,
int nCmpt>
382 Cmpt cMin = vs.
v_[0];
388 template<
class Form,
class Cmpt,
int nCmpt>
400 template<
class Form,
class Cmpt,
int nCmpt>
410 template<
class Form,
class Cmpt,
int nCmpt>
422 template<
class Form,
class Cmpt,
int nCmpt>
435 template<
class Form,
class Cmpt,
int nCmpt>
448 template<
class Form,
class Cmpt,
int nCmpt>
462 inline Type
dot(
const scalar s,
const Type& t)
469 inline Type
dot(
const Type& t,
const scalar s)
477 class Form1,
class Cmpt1,
int nCmpt1,
478 class Form2,
class Cmpt2,
int nCmpt2
486 return static_cast<const Form1&
>(t1) & static_cast<const Form2&>(t2);
492 template<
class Form,
class Cmpt,
int nCmpt>
493 inline Form
operator-
504 template<
class Form,
class Cmpt,
int nCmpt>
505 inline Form
operator+
516 template<
class Form,
class Cmpt,
int nCmpt>
517 inline Form
operator-
529 template<
class Form,
class Cmpt,
int nCmpt>
530 inline Form
operator*
542 template<
class Form,
class Cmpt,
int nCmpt>
543 inline Form
operator*
555 template<
class Form,
class Cmpt,
int nCmpt>
556 inline Form
operator/
595 template<
class Form,
class Cmpt,
int nCmpt>
596 inline Cmpt
operator&&
602 Cmpt ddProd = vs1.
v_[0]*vs2.
v_[0];
603 for (
int i=1; i<nCmpt; ++i)
605 ddProd += vs1.
v_[i]*vs2.
v_[i];
611 template<
class Form,
class Cmpt,
int nCmpt>
612 inline bool operator==
619 for (
int i=0; i<nCmpt; ++i)
621 if (!(eq &= (
equal(vs1.
v_[i], vs2.
v_[i]))))
break;
627 template<
class Form,
class Cmpt,
int nCmpt>
628 inline bool operator!=
634 return !(vs1 == vs2);
638 template<
class Form,
class Cmpt,
int nCmpt>
639 inline bool operator>
646 for (
int i=0; i<nCmpt; ++i)
648 if (!(gt &= vs1.
v_[i] > vs2.
v_[i]))
break;
654 template<
class Form,
class Cmpt,
int nCmpt>
655 inline bool operator<
662 for (
int i=0; i<nCmpt; ++i)
664 if (!(lt &= vs1.
v_[i] < vs2.
v_[i]))
break;
670 template<
class Form,
class Cmpt,
int nCmpt>
671 inline bool operator>=
681 template<
class Form,
class Cmpt,
int nCmpt>
682 inline bool operator<=