CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Classes | Namespaces | Typedefs | Functions | Variables
oldBasic2DVector.h File Reference
#include "DataFormats/GeometryVector/interface/Phi.h"
#include "DataFormats/GeometryVector/interface/PreciseFloatType.h"
#include "DataFormats/GeometryVector/interface/CoordinateSets.h"
#include "DataFormats/Math/interface/SSEVec.h"
#include <cmath>
#include <iosfwd>

Go to the source code of this file.

Classes

class  Basic2DVector< T >
 

Namespaces

 geometryDetails
 

Typedefs

typedef Basic2DVector< double > Basic2DVectorD
 
typedef Basic2DVector< float > Basic2DVectorF
 

Functions

template<class T >
T operator* (const Basic2DVector< T > &v1, const Basic2DVector< T > &v2)
 
template<class T , class U >
PreciseFloatType< T, U >::Type operator* (const Basic2DVector< T > &v1, const Basic2DVector< U > &v2)
 scalar product of vectors of different precision More...
 
template<class T , class Scalar >
Basic2DVector< Toperator* (const Basic2DVector< T > &v, const Scalar &s)
 
template<class T , class Scalar >
Basic2DVector< Toperator* (const Scalar &s, const Basic2DVector< T > &v)
 Same as operator*( Vector, Scalar) More...
 
template<class T , class U >
Basic2DVector< typename
PreciseFloatType< T, U >::Type > 
operator+ (const Basic2DVector< T > &a, const Basic2DVector< U > &b)
 vector sum and subtraction of vectors of possibly different precision More...
 
template<class T , class U >
Basic2DVector< typename
PreciseFloatType< T, U >::Type > 
operator- (const Basic2DVector< T > &a, const Basic2DVector< U > &b)
 
template<class T , class Scalar >
Basic2DVector< Toperator/ (const Basic2DVector< T > &v, const Scalar &s)
 
template<class T >
std::ostream & operator<< (std::ostream &s, const Basic2DVector< T > &v)
 simple text output to standard streams More...
 
std::ostream & geometryDetails::print2D (std::ostream &s, double x, double y)
 

Variables

class Basic2DVector __attribute__
 

Typedef Documentation

typedef Basic2DVector<double> Basic2DVectorD

Definition at line 232 of file oldBasic2DVector.h.

typedef Basic2DVector<float> Basic2DVectorF

Definition at line 231 of file oldBasic2DVector.h.

Function Documentation

template<class T >
T operator* ( const Basic2DVector< T > &  v1,
const Basic2DVector< T > &  v2 
)
inline

Definition at line 194 of file oldBasic2DVector.h.

References Basic2DVector< T >::dot().

194  {
195  return v1.dot(v2);
196 }
T dot(const Basic2DVector &lh) const
Scalar product, or &quot;dot&quot; product, with a vector of same type.
template<class T , class U >
PreciseFloatType<T,U>::Type operator* ( const Basic2DVector< T > &  v1,
const Basic2DVector< U > &  v2 
)
inline

scalar product of vectors of different precision

Definition at line 200 of file oldBasic2DVector.h.

References Basic2DVector< T >::x(), and Basic2DVector< T >::y().

201  {
202  return v1.x()*v2.x() + v1.y()*v2.y();
203 }
T y() const
Cartesian y coordinate.
T x() const
Cartesian x coordinate.
template<class T , class Scalar >
Basic2DVector<T> operator* ( const Basic2DVector< T > &  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 209 of file oldBasic2DVector.h.

References alignCSCRings::s, lumiQTWidget::t, Basic2DVector< T >::x(), and Basic2DVector< T >::y().

209  {
210  T t = static_cast<T>(s);
211  return Basic2DVector<T>(v.x()*t, v.y()*t);
212 }
T y() const
Cartesian y coordinate.
long double T
T x() const
Cartesian x coordinate.
template<class T , class Scalar >
Basic2DVector<T> operator* ( const Scalar &  s,
const Basic2DVector< T > &  v 
)
inline

Same as operator*( Vector, Scalar)

Definition at line 216 of file oldBasic2DVector.h.

References alignCSCRings::s, lumiQTWidget::t, Basic2DVector< T >::x(), and Basic2DVector< T >::y().

216  {
217  T t = static_cast<T>(s);
218  return Basic2DVector<T>(v.x()*t, v.y()*t);
219 }
T y() const
Cartesian y coordinate.
long double T
T x() const
Cartesian x coordinate.
template<class T , class U >
Basic2DVector<typename PreciseFloatType<T,U>::Type> operator+ ( const Basic2DVector< T > &  a,
const Basic2DVector< U > &  b 
)
inline

vector sum and subtraction of vectors of possibly different precision

Definition at line 177 of file oldBasic2DVector.h.

References Basic2DVector< T >::x(), and Basic2DVector< T >::y().

177  {
179  return RT(a.x()+b.x(), a.y()+b.y());
180 }
T y() const
Cartesian y coordinate.
T x() const
Cartesian x coordinate.
template<class T , class U >
Basic2DVector<typename PreciseFloatType<T,U>::Type> operator- ( const Basic2DVector< T > &  a,
const Basic2DVector< U > &  b 
)
inline

Definition at line 184 of file oldBasic2DVector.h.

References Basic2DVector< T >::x(), and Basic2DVector< T >::y().

184  {
186  return RT(a.x()-b.x(), a.y()-b.y());
187 }
T y() const
Cartesian y coordinate.
T x() const
Cartesian x coordinate.
template<class T , class Scalar >
Basic2DVector<T> operator/ ( const Basic2DVector< T > &  v,
const Scalar &  s 
)
inline

Division 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 225 of file oldBasic2DVector.h.

References alignCSCRings::s, lumiQTWidget::t, Basic2DVector< T >::x(), and Basic2DVector< T >::y().

225  {
226  T t = static_cast<T>(s);
227  return Basic2DVector<T>(v.x()/t, v.y()/t);
228 }
T y() const
Cartesian y coordinate.
long double T
T x() const
Cartesian x coordinate.
template<class T >
std::ostream& operator<< ( std::ostream &  s,
const Basic2DVector< T > &  v 
)
inline

simple text output to standard streams

Definition at line 169 of file oldBasic2DVector.h.

References geometryDetails::print2D(), alignCSCRings::s, and v.

169  {
170  return geometryDetails::print2D(s, v.x(),v.y());
171 }
std::ostream & print2D(std::ostream &s, double x, double y)
Definition: print.cc:8
T y() const
Cartesian y coordinate.
T x() const
Cartesian x coordinate.

Variable Documentation

double __attribute__
inline

Definition at line 172 of file AVXVec.h.

173  {
174  using mathSSE::_mm256_cross_pd;
175  return _mm256_cross_pd(a.vec,b.vec);
176 }
double b
Definition: hdecay.h:120
double a
Definition: hdecay.h:121