CMS 3D CMS Logo

Classes | Namespaces | Typedefs | Functions | Variables

/data/refman/pasoursint/CMSSW_4_4_5_patch3/src/DataFormats/GeometryVector/interface/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

namespace  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 Scalar >
Basic2DVector< Toperator* (const Scalar &s, const Basic2DVector< T > &v)
 Same as operator*( Vector, Scalar)
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
template<class T , class Scalar >
Basic2DVector< Toperator* (const Basic2DVector< T > &v, const Scalar &s)
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
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
std::ostream & geometryDetails::print2D (std::ostream &s, double x, double y)

Variables

class Basic2DVector __attribute__

Typedef Documentation

typedef Basic2DVector<double> Basic2DVectorD

Definition at line 231 of file oldBasic2DVector.h.

typedef Basic2DVector<float> Basic2DVectorF

Definition at line 230 of file oldBasic2DVector.h.


Function Documentation

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

Definition at line 193 of file oldBasic2DVector.h.

References Basic2DVector< T >::dot().

                                                                            {
  return v1.dot(v2);
}
template<class T , class Scalar >
Basic2DVector<T> operator* ( const Scalar &  s,
const Basic2DVector< T > &  v 
) [inline]

Same as operator*( Vector, Scalar)

Definition at line 215 of file oldBasic2DVector.h.

References asciidump::s, matplotRender::t, Basic2DVector< T >::x(), and Basic2DVector< T >::y().

                                                                               {
  T t = static_cast<T>(s);
  return Basic2DVector<T>(v.x()*t, v.y()*t);
}
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 199 of file oldBasic2DVector.h.

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

                                                                                   {
  return v1.x()*v2.x() + v1.y()*v2.y();
}
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 208 of file oldBasic2DVector.h.

References asciidump::s, matplotRender::t, Basic2DVector< T >::x(), and Basic2DVector< T >::y().

                                                                               {
  T t = static_cast<T>(s);
  return Basic2DVector<T>(v.x()*t, v.y()*t);
}
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 176 of file oldBasic2DVector.h.

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

                                                                 {
  typedef Basic2DVector<typename PreciseFloatType<T,U>::Type> RT;
  return RT(a.x()+b.x(), a.y()+b.y());
}
template<class T , class U >
Basic2DVector<typename PreciseFloatType<T,U>::Type> operator- ( const Basic2DVector< T > &  a,
const Basic2DVector< U > &  b 
) [inline]

Definition at line 183 of file oldBasic2DVector.h.

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

                                                                 {
  typedef Basic2DVector<typename PreciseFloatType<T,U>::Type> RT;
  return RT(a.x()-b.x(), a.y()-b.y());
}
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 224 of file oldBasic2DVector.h.

References asciidump::s, matplotRender::t, Basic2DVector< T >::x(), and Basic2DVector< T >::y().

                                                                               {
  T t = static_cast<T>(s);
  return Basic2DVector<T>(v.x()/t, v.y()/t);
}
template<class T >
std::ostream& operator<< ( std::ostream &  s,
const Basic2DVector< T > &  v 
) [inline]

simple text output to standard streams

Definition at line 168 of file oldBasic2DVector.h.

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

                                                                          {
  return geometryDetails::print2D(s, v.x(),v.y());
}

Variable Documentation

double __attribute__ [inline]

Definition at line 167 of file AVXVec.h.

                                                    {
  using  mathSSE::_mm256_cross_pd;
  return _mm256_cross_pd(a.vec,b.vec);
}