CbmRoot
P4_F64vec2.h File Reference
#include "vec_arithmetic.h"
#include <cmath>
#include <emmintrin.h>
#include <iostream>
#include "std_alloc.h"
Include dependency graph for P4_F64vec2.h:

Go to the source code of this file.

Classes

class  F64vec2
 

Macros

#define _f64vec2_abs_mask   (static_cast<F64vec2>(__f64vec2_abs_mask_cheat.m))
 
#define _f64vec2_sgn_mask   (static_cast<F64vec2>(__f64vec2_sgn_mask_cheat.m))
 
#define _f64vec2_zero   (static_cast<F64vec2>(__f64vec2_zero_cheat.m))
 
#define _f64vec2_one   (static_cast<F64vec2>(__f64vec2_one_cheat.m))
 
#define _f64vec2_true   (static_cast<F64vec2>(__f64vec2_true_cheat.m))
 
#define _f64vec2_false   (static_cast<F64vec2>(__f64vec2_false_cheat.m))
 
#define if3(a, b, c)   ((a) & (b)) | ((!(a)) & (c))
 
#define NotEmpty(a)   bool((a)[0]) | bool((a)[1]) | bool((a)[2]) | bool((a)[3])
 
#define Empty(a)   !(bool((a)[0]) | bool((a)[1]) | bool((a)[2]) | bool((a)[3]))
 
#define _f1(A, F)   F64vec2(F(A[0]), F(A[1]))
 
#define _fvecalignment   __attribute__((aligned(16)))
 

Typedefs

typedef F64vec2 fvec
 
typedef double fscal
 

Functions

class F64vec2 __attribute__ ((aligned(16)))
 
double & operator[] (int i)
 
 F64vec2 ()
 
 F64vec2 (const __m128d &a)
 
 F64vec2 (const double &a)
 
 F64vec2 (const double &f0, const double &f1)
 
 operator __m128d () const
 
F64vec2 operator+ (const F64vec2 &a, const F64vec2 &b)
 
F64vec2 operator- (const F64vec2 &a, const F64vec2 &b)
 
F64vec2 operator* (const F64vec2 &a, const F64vec2 &b)
 
F64vec2 operator/ (const F64vec2 &a, const F64vec2 &b)
 
F64vec2 min (const F64vec2 &a, const F64vec2 &b)
 
F64vec2 max (const F64vec2 &a, const F64vec2 &b)
 
F64vec2 sqrt (const F64vec2 &a)
 
F64vec2 rsqrt (const F64vec2 &a)
 
F64vec2 rcp (const F64vec2 &a)
 
F64vec2 fabs (const F64vec2 &a)
 
F64vec2 sgn (const F64vec2 &a)
 
F64vec2 asgnb (const F64vec2 &a, const F64vec2 &b)
 
F64vec2 operator& (const F64vec2 &a, const F64vec2 &b)
 
F64vec2 operator| (const F64vec2 &a, const F64vec2 &b)
 
F64vec2 operator^ (const F64vec2 &a, const F64vec2 &b)
 
F64vec2 operator! (const F64vec2 &a)
 
F64vec2 operator< (const F64vec2 &a, const F64vec2 &b)
 
F64vec2 operator<= (const F64vec2 &a, const F64vec2 &b)
 
F64vec2 operator> (const F64vec2 &a, const F64vec2 &b)
 
F64vec2 operator>= (const F64vec2 &a, const F64vec2 &b)
 
F64vec2 operator== (const F64vec2 &a, const F64vec2 &b)
 
F64vec2 bool2int (const F64vec2 &a)
 
 vec_arithmetic (F64vec2, double)
 
F64vec2 exp (const F64vec2 &a)
 
F64vec2 log (const F64vec2 &a)
 
F64vec2 sin (const F64vec2 &a)
 
F64vec2 cos (const F64vec2 &a)
 
F64vec2 acos (const F64vec2 &a)
 
F64vec2 atan2 (const F64vec2 &y, const F64vec2 &x)
 
std::ostream & operator<< (std::ostream &strm, const F64vec2 &a)
 
std::istream & operator>> (std::istream &strm, F64vec2 &a)
 

Variables

union {
   double   d
 
   long long   i
 
__d_one = {(double) 1.}
 
union {
   long long   i [2]
 
   __m128d   m
 
__f64vec2_abs_mask_cheat = {{0x7fffffffffffffffll, 0x7fffffffffffffffll}}
 
union {
   long long   i [2]
 
   __m128d   m
 
__f64vec2_sgn_mask_cheat = {{0x8000000000000000ull, 0x8000000000000000ull}}
 
union {
   long long   i [2]
 
   __m128d   m
 
__f64vec2_zero_cheat = {{0, 0}}
 
union {
   long long   i [2]
 
   __m128d   m
 
__f64vec2_one_cheat = {{__d_one.i, __d_one.i}}
 
union {
   long long   i [2]
 
   __m128d   m
 
__f64vec2_true_cheat = {{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF}}
 
union {
   long long   i [2]
 
   __m128d   m
 
__f64vec2_false_cheat = {{0x0000000000000000, 0x0000000000000000}}
 
__m128d v
 
const int fvecLen = 2
 

Macro Definition Documentation

◆ _f1

#define _f1 (   A,
 
)    F64vec2(F(A[0]), F(A[1]))

Definition at line 128 of file P4_F64vec2.h.

◆ _f64vec2_abs_mask

#define _f64vec2_abs_mask   (static_cast<F64vec2>(__f64vec2_abs_mask_cheat.m))

Definition at line 35 of file P4_F64vec2.h.

◆ _f64vec2_false

#define _f64vec2_false   (static_cast<F64vec2>(__f64vec2_false_cheat.m))

Definition at line 40 of file P4_F64vec2.h.

◆ _f64vec2_one

#define _f64vec2_one   (static_cast<F64vec2>(__f64vec2_one_cheat.m))

Definition at line 38 of file P4_F64vec2.h.

◆ _f64vec2_sgn_mask

#define _f64vec2_sgn_mask   (static_cast<F64vec2>(__f64vec2_sgn_mask_cheat.m))

Definition at line 36 of file P4_F64vec2.h.

◆ _f64vec2_true

#define _f64vec2_true   (static_cast<F64vec2>(__f64vec2_true_cheat.m))

Definition at line 39 of file P4_F64vec2.h.

◆ _f64vec2_zero

#define _f64vec2_zero   (static_cast<F64vec2>(__f64vec2_zero_cheat.m))

Definition at line 37 of file P4_F64vec2.h.

◆ _fvecalignment

#define _fvecalignment   __attribute__((aligned(16)))

Definition at line 244 of file P4_F64vec2.h.

◆ Empty

#define Empty (   a)    !(bool((a)[0]) | bool((a)[1]) | bool((a)[2]) | bool((a)[3]))

Definition at line 115 of file P4_F64vec2.h.

◆ if3

#define if3 (   a,
  b,
 
)    ((a) & (b)) | ((!(a)) & (c))

Definition at line 112 of file P4_F64vec2.h.

◆ NotEmpty

#define NotEmpty (   a)    bool((a)[0]) | bool((a)[1]) | bool((a)[2]) | bool((a)[3])

Definition at line 114 of file P4_F64vec2.h.

Typedef Documentation

◆ fscal

typedef double fscal

Definition at line 239 of file P4_F64vec2.h.

◆ fvec

typedef F64vec2 fvec

Definition at line 238 of file P4_F64vec2.h.

Function Documentation

◆ __attribute__()

class F64vec2 __attribute__ ( (aligned(16))  )

◆ acos()

friend F64vec2 __attribute__::acos ( const F64vec2 a)

Definition at line 133 of file P4_F64vec2.h.

◆ asgnb()

friend F64vec2 __attribute__::asgnb ( const F64vec2 a,
const F64vec2 b 
)

Definition at line 63 of file P4_F64vec2.h.

◆ atan2()

friend F64vec2 __attribute__::atan2 ( const F64vec2 y,
const F64vec2 x 
)

Definition at line 137 of file P4_F64vec2.h.

◆ bool2int()

friend F64vec2 __attribute__::bool2int ( const F64vec2 a)

Definition at line 117 of file P4_F64vec2.h.

◆ cos()

friend F64vec2 __attribute__::cos ( const F64vec2 a)

Definition at line 132 of file P4_F64vec2.h.

◆ exp()

friend F64vec2 __attribute__::exp ( const F64vec2 a)

Definition at line 129 of file P4_F64vec2.h.

◆ F64vec2() [1/4]

__attribute__::F64vec2 ( )

Definition at line 8 of file P4_F64vec2.h.

◆ F64vec2() [2/4]

__attribute__::F64vec2 ( const __m128d &  a)

Definition at line 9 of file P4_F64vec2.h.

◆ F64vec2() [3/4]

__attribute__::F64vec2 ( const double &  a)

Definition at line 10 of file P4_F64vec2.h.

◆ F64vec2() [4/4]

__attribute__::F64vec2 ( const double &  f0,
const double &  f1 
)

Definition at line 12 of file P4_F64vec2.h.

◆ fabs()

friend F64vec2 __attribute__::fabs ( const F64vec2 a)

Definition at line 55 of file P4_F64vec2.h.

◆ log()

friend F64vec2 __attribute__::log ( const F64vec2 a)

Definition at line 130 of file P4_F64vec2.h.

◆ max()

friend F64vec2 __attribute__::max ( const F64vec2 a,
const F64vec2 b 
)

Definition at line 35 of file P4_F64vec2.h.

◆ min()

friend F64vec2 __attribute__::min ( const F64vec2 a,
const F64vec2 b 
)

Definition at line 32 of file P4_F64vec2.h.

◆ operator __m128d()

__attribute__::operator __m128d ( ) const

Definition at line 15 of file P4_F64vec2.h.

◆ operator!()

friend F64vec2 __attribute__::operator! ( const F64vec2 a)

Definition at line 81 of file P4_F64vec2.h.

◆ operator&()

friend F64vec2 __attribute__::operator& ( const F64vec2 a,
const F64vec2 b 
)

Definition at line 69 of file P4_F64vec2.h.

◆ operator*()

friend F64vec2 __attribute__::operator* ( const F64vec2 a,
const F64vec2 b 
)

Definition at line 24 of file P4_F64vec2.h.

◆ operator+()

friend F64vec2 __attribute__::operator+ ( const F64vec2 a,
const F64vec2 b 
)

Definition at line 18 of file P4_F64vec2.h.

References d.

◆ operator-()

friend F64vec2 __attribute__::operator- ( const F64vec2 a,
const F64vec2 b 
)

Definition at line 21 of file P4_F64vec2.h.

◆ operator/()

friend F64vec2 __attribute__::operator/ ( const F64vec2 a,
const F64vec2 b 
)

Definition at line 27 of file P4_F64vec2.h.

◆ operator<()

friend F64vec2 __attribute__::operator< ( const F64vec2 a,
const F64vec2 b 
)

Definition at line 90 of file P4_F64vec2.h.

◆ operator<<()

friend std::ostream& __attribute__::operator<< ( std::ostream &  strm,
const F64vec2 a 
)

Definition at line 181 of file P4_F64vec2.h.

◆ operator<=()

friend F64vec2 __attribute__::operator<= ( const F64vec2 a,
const F64vec2 b 
)

Definition at line 94 of file P4_F64vec2.h.

◆ operator==()

friend F64vec2 __attribute__::operator== ( const F64vec2 a,
const F64vec2 b 
)

Definition at line 106 of file P4_F64vec2.h.

◆ operator>()

friend F64vec2 __attribute__::operator> ( const F64vec2 a,
const F64vec2 b 
)

Definition at line 98 of file P4_F64vec2.h.

◆ operator>=()

friend F64vec2 __attribute__::operator>= ( const F64vec2 a,
const F64vec2 b 
)

Definition at line 102 of file P4_F64vec2.h.

References _f64vec2_one, and _f64vec2_sgn_mask.

◆ operator>>()

friend std::istream& __attribute__::operator>> ( std::istream &  strm,
F64vec2 a 
)

Definition at line 186 of file P4_F64vec2.h.

◆ operator[]()

double& __attribute__::operator[] ( int  i)

Definition at line 3 of file P4_F64vec2.h.

◆ operator^()

friend F64vec2 __attribute__::operator^ ( const F64vec2 a,
const F64vec2 b 
)

Definition at line 77 of file P4_F64vec2.h.

◆ operator|()

friend F64vec2 __attribute__::operator| ( const F64vec2 a,
const F64vec2 b 
)

Definition at line 73 of file P4_F64vec2.h.

◆ rcp()

friend F64vec2 __attribute__::rcp ( const F64vec2 a)

Definition at line 51 of file P4_F64vec2.h.

◆ rsqrt()

friend F64vec2 __attribute__::rsqrt ( const F64vec2 a)

Definition at line 43 of file P4_F64vec2.h.

◆ sgn()

friend F64vec2 __attribute__::sgn ( const F64vec2 a)

Definition at line 60 of file P4_F64vec2.h.

◆ sin()

friend F64vec2 __attribute__::sin ( const F64vec2 a)

Definition at line 131 of file P4_F64vec2.h.

◆ sqrt()

friend F64vec2 __attribute__::sqrt ( const F64vec2 a)

Definition at line 40 of file P4_F64vec2.h.

◆ vec_arithmetic()

__attribute__::vec_arithmetic ( F64vec2  ,
double   
)

References _f64vec2_true.

Variable Documentation

◆ __d_one

const { ... } __d_one

◆ __f64vec2_abs_mask_cheat

const { ... } __f64vec2_abs_mask_cheat

◆ __f64vec2_false_cheat

const { ... } __f64vec2_false_cheat

◆ __f64vec2_one_cheat

const { ... } __f64vec2_one_cheat

◆ __f64vec2_sgn_mask_cheat

const { ... } __f64vec2_sgn_mask_cheat

◆ __f64vec2_true_cheat

const { ... } __f64vec2_true_cheat

◆ __f64vec2_zero_cheat

const { ... } __f64vec2_zero_cheat

◆ d

double d

Definition at line 24 of file P4_F64vec2.h.

Referenced by CbmTrdModuleRecT::AddDigi(), CbmKFMath::AnalyticQP(), CbmRichRingFitterBase::CalcChi2(), PairAnalysisTrack::CalculateChi2Vtx(), CbmAnaConversionReco::CalculateInvMassWithFullRecoCuts(), CbmTrdModuleRecT::Config(), CbmKFParticle::Construct(), CbmKFParticle::ConstructFromKFParticle(), PsdSignalFitting::PronyFitter::CovarianceQRmod(), CbmRichRingFinderHoughImpl::DefineLocalAreaAndHits(), CbmStsPhysics::DiffusionWidth(), CbmRichRonchiAna::DoDeviation(), CbmRichRingFitterRobustCOP::DoFit(), CbmRichRingFitterTAU::DoFit(), CbmRichRingFitterEllipseTau::Eigsrt(), CbmL1RichENNRingFinderParallel::ENNRingFinder(), CbmStsFitPerformanceTask::Exec(), CbmKFTrackInterface::Extrapolate(), CbmTrdModuleRecR::FindClusters(), CbmMvdClusterAna::Finish(), CbmL1PFFitter::GetChiToVertex(), CbmKFMath::getDeviation(), CbmRichRecGeoPar::GetGeoRecPmtByBlockPathOrClosest(), CbmRichCorrection::GetMirrorIntersection(), CbmRichCorrectionVector::GetMirrorIntersection(), CbmRadDamage::GetVfd(), L1Algo::InvertCholetsky(), L1ExtrapolateJXY(), LxFinder::MatchRecoToMC(), CbmAnaConversionRecoFull::MixedEventTest(), CbmAnaConversionRecoFull::MixedEventTest2(), CbmAnaConversionRecoFull::MixedEventTest3(), CbmAnaDielectronTask::MvdCutMcDistance(), operator+(), CbmMvdSensorDigitizerTBTask::ProduceIonisationPoints(), CbmMvdSensorDigitizerTask::ProduceIonisationPoints(), ThermalModelEVMF::PVdW(), CbmAnaConversionKF::Reconstruct(), CbmRichRingLight::SetABCDEF(), CbmTrdParModDigi::SetAnodeWireToPadPlaneDistance(), CbmRichRing::SetDPar(), CbmTrdParModGas::SetDriftMap(), LKFMinuit::SumDistance2(), ThermalModelEVMF::UVdW(), and CbmClusteringWard::WardProcessingData().

◆ fvecLen

const int fvecLen = 2

Definition at line 240 of file P4_F64vec2.h.

◆ i

long long i[2]

Definition at line 25 of file P4_F64vec2.h.

Referenced by F64vec2::operator[]().

◆ m

__m128d m

Definition at line 26 of file P4_F64vec2.h.

◆ v

__m128d v

Definition at line 1 of file P4_F64vec2.h.