CMS 3D CMS Logo

Public Types | Public Member Functions | Private Attributes

VectorDoublet< V1, V2 > Class Template Reference

#include <VectorDoublet.h>

List of all members.

Public Types

typedef V1::ScalarType Scalar1
typedef V2::ScalarType Scalar2

Public Member Functions

PreciseFloatType< Scalar1,
Scalar2 >::Type 
dot (const VectorDoublet &v) const
const V1 & first () const
template<class T >
VectorDoubletoperator*= (const T &t)
VectorDoubletoperator+= (const VectorDoublet &v)
VectorDoublet operator- () const
VectorDoubletoperator-= (const VectorDoublet &v)
template<class T >
VectorDoubletoperator/= (const T &t)
const V2 & second () const
 VectorDoublet ()
 VectorDoublet (const V1 &a, const V2 &b)

Private Attributes

V1 a_
V2 b_

Detailed Description

template<class V1, class V2>
class VectorDoublet< V1, V2 >

Definition at line 8 of file VectorDoublet.h.


Member Typedef Documentation

template<class V1, class V2>
typedef V1::ScalarType VectorDoublet< V1, V2 >::Scalar1

Definition at line 11 of file VectorDoublet.h.

template<class V1, class V2>
typedef V2::ScalarType VectorDoublet< V1, V2 >::Scalar2

Definition at line 12 of file VectorDoublet.h.


Constructor & Destructor Documentation

template<class V1, class V2>
VectorDoublet< V1, V2 >::VectorDoublet ( ) [inline]

Definition at line 14 of file VectorDoublet.h.

{}
template<class V1, class V2>
VectorDoublet< V1, V2 >::VectorDoublet ( const V1 &  a,
const V2 &  b 
) [inline]

Definition at line 15 of file VectorDoublet.h.

: a_(a), b_(b) {}

Member Function Documentation

template<class V1, class V2>
PreciseFloatType<Scalar1,Scalar2>::Type VectorDoublet< V1, V2 >::dot ( const VectorDoublet< V1, V2 > &  v) const [inline]

Definition at line 46 of file VectorDoublet.h.

                                                                                    { 
    return first()*v.first() + second()*v.second();
  }
template<class V1, class V2>
const V1& VectorDoublet< V1, V2 >::first ( ) const [inline]
template<class V1, class V2>
template<class T >
VectorDoublet& VectorDoublet< V1, V2 >::operator*= ( const T t) [inline]

Definition at line 34 of file VectorDoublet.h.

                                          {
    a_ *= t;
    b_ *= t;
    return *this;
  } 
template<class V1, class V2>
VectorDoublet& VectorDoublet< V1, V2 >::operator+= ( const VectorDoublet< V1, V2 > &  v) [inline]

Definition at line 20 of file VectorDoublet.h.

                                                      {
    a_ += v.first();
    b_ += v.second();
    return *this;
  } 
template<class V1, class V2>
VectorDoublet VectorDoublet< V1, V2 >::operator- ( ) const [inline]

Definition at line 31 of file VectorDoublet.h.

{ return VectorDoublet( -a_, -b_);}
template<class V1, class V2>
VectorDoublet& VectorDoublet< V1, V2 >::operator-= ( const VectorDoublet< V1, V2 > &  v) [inline]

Definition at line 25 of file VectorDoublet.h.

                                                      {
    a_ -= v.first();
    b_ -= v.second();
    return *this;
  } 
template<class V1, class V2>
template<class T >
VectorDoublet& VectorDoublet< V1, V2 >::operator/= ( const T t) [inline]

Definition at line 40 of file VectorDoublet.h.

                                          {
    a_ /= t;
    b_ /= t;
    return *this;
  } 
template<class V1, class V2>
const V2& VectorDoublet< V1, V2 >::second ( ) const [inline]

Member Data Documentation

template<class V1, class V2>
V1 VectorDoublet< V1, V2 >::a_ [private]

Definition at line 52 of file VectorDoublet.h.

template<class V1, class V2>
V2 VectorDoublet< V1, V2 >::b_ [private]

Definition at line 53 of file VectorDoublet.h.