CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Classes | Functions
VectorDoublet.h File Reference
#include "FWCore/Utilities/interface/Visibility.h"
#include "DataFormats/GeometryVector/interface/PreciseFloatType.h"

Go to the source code of this file.

Classes

class  VectorDoublet< V1, V2 >
 

Functions

template<class V1 , class V2 , class Scalar >
VectorDoublet< V1, V2 > operator* (const VectorDoublet< V1, V2 > &v, const Scalar &s)
 
template<class V1 , class V2 , class Scalar >
VectorDoublet< V1, V2 > operator* (const Scalar &s, const VectorDoublet< V1, V2 > &v)
 
template<class V1 , class V2 >
VectorDoublet< V1, V2 > operator+ (const VectorDoublet< V1, V2 > &a, const VectorDoublet< V1, V2 > &b)
 vector sum and subtraction More...
 
template<class V1 , class V2 >
VectorDoublet< V1, V2 > operator- (const VectorDoublet< V1, V2 > &a, const VectorDoublet< V1, V2 > &b)
 
template<class V1 , class V2 , class Scalar >
VectorDoublet< V1, V2 > operator/ (const VectorDoublet< V1, V2 > &v, const Scalar &s)
 

Function Documentation

template<class V1 , class V2 , class Scalar >
VectorDoublet<V1, V2> operator* ( const VectorDoublet< V1, V2 > &  v,
const Scalar &  s 
)
inline

Multiplication by scalar, does not change the precision of the vector. The return type is the same as the type of the vector argument.

Definition at line 69 of file VectorDoublet.h.

References VectorDoublet< V1, V2 >::first(), alignCSCRings::s, and VectorDoublet< V1, V2 >::second().

69  {
70  return VectorDoublet<V1, V2>(v.first() * s, v.second() * s);
71 }
const V1 & first() const
Definition: VectorDoublet.h:16
const V2 & second() const
Definition: VectorDoublet.h:17
template<class V1 , class V2 , class Scalar >
VectorDoublet<V1, V2> operator* ( const Scalar &  s,
const VectorDoublet< V1, V2 > &  v 
)
inline

Definition at line 73 of file VectorDoublet.h.

References VectorDoublet< V1, V2 >::first(), alignCSCRings::s, and VectorDoublet< V1, V2 >::second().

73  {
74  return VectorDoublet<V1, V2>(v.first() * s, v.second() * s);
75 }
const V1 & first() const
Definition: VectorDoublet.h:16
const V2 & second() const
Definition: VectorDoublet.h:17
template<class V1 , class V2 >
VectorDoublet<V1, V2> operator+ ( const VectorDoublet< V1, V2 > &  a,
const VectorDoublet< V1, V2 > &  b 
)
inline

vector sum and subtraction

Definition at line 56 of file VectorDoublet.h.

References VectorDoublet< V1, V2 >::first(), and VectorDoublet< V1, V2 >::second().

56  {
57  return VectorDoublet<V1, V2>(a.first() + b.first(), a.second() + b.second());
58 }
const V1 & first() const
Definition: VectorDoublet.h:16
const V2 & second() const
Definition: VectorDoublet.h:17
template<class V1 , class V2 >
VectorDoublet<V1, V2> operator- ( const VectorDoublet< V1, V2 > &  a,
const VectorDoublet< V1, V2 > &  b 
)
inline

Definition at line 61 of file VectorDoublet.h.

References VectorDoublet< V1, V2 >::first(), and VectorDoublet< V1, V2 >::second().

61  {
62  return VectorDoublet<V1, V2>(a.first() - b.first(), a.second() - b.second());
63 }
const V1 & first() const
Definition: VectorDoublet.h:16
const V2 & second() const
Definition: VectorDoublet.h:17
template<class V1 , class V2 , class Scalar >
VectorDoublet<V1, V2> operator/ ( const VectorDoublet< V1, V2 > &  v,
const Scalar &  s 
)
inline

Definition at line 78 of file VectorDoublet.h.

References VectorDoublet< V1, V2 >::first(), alignCSCRings::s, and VectorDoublet< V1, V2 >::second().

78  {
79  return VectorDoublet<V1, V2>(v.first() / s, v.second() / s);
80 }
const V1 & first() const
Definition: VectorDoublet.h:16
const V2 & second() const
Definition: VectorDoublet.h:17