1 #ifndef VectorDoublet_H 2 #define VectorDoublet_H 7 template <
class V1,
class V2>
17 const V1&
first()
const {
return a_;}
18 const V2&
second()
const {
return b_;}
58 template <
class V1,
class V2>
64 template <
class V1,
class V2>
73 template <
class V1,
class V2,
class Scalar>
77 template <
class V1,
class V2,
class Scalar>
82 template <
class V1,
class V2,
class Scalar>
Basic3DVector & operator*=(T t)
Scaling by a scalar value (multiplication)
VectorDoublet(const V1 &a, const V2 &b)
Basic3DVector & operator-=(const Basic3DVector< U > &p)
U second(std::pair< T, U > const &p)
VectorDoublet< V1, V2 > operator-(const VectorDoublet< V1, V2 > &a, const VectorDoublet< V1, V2 > &b)
PreciseFloatType< Scalar1, Scalar2 >::Type dot(const VectorDoublet &v) const
const V2 & second() const
Basic3DVector & operator/=(T t)
Scaling by a scalar value (division)
VectorDoublet< V1, V2 > operator+(const VectorDoublet< V1, V2 > &a, const VectorDoublet< V1, V2 > &b)
vector sum and subtraction
VectorDoublet< V1, V2 > operator/(const VectorDoublet< V1, V2 > &v, const Scalar &s)
VectorDoublet operator-() const
VectorDoublet< V1, V2 > operator*(const VectorDoublet< V1, V2 > &v, const Scalar &s)
Basic3DVector & operator+=(const Basic3DVector< U > &p)