CbmRoot
littrack/parallel/vectors/P4_F32vec4.h File Reference
#include "vec_arithmetic.h"
#include "xmmintrin.h"
#include <cmath>
#include <iostream>
Include dependency graph for littrack/parallel/vectors/P4_F32vec4.h:

Go to the source code of this file.

Classes

class  F32vec4
 

Macros

#define _f32vec4_abs_mask   ((F32vec4) __f32vec4_abs_mask_cheat.m)
 
#define _f32vec4_sgn_mask   ((F32vec4) __f32vec4_sgn_mask_cheat.m)
 
#define _f32vec4_zero   ((F32vec4) __f32vec4_zero_cheat.m)
 
#define _f32vec4_one   ((F32vec4) __f32vec4_one_cheat.m)
 
#define _f32vec4_true   ((F32vec4) __f32vec4_true_cheat.m)
 
#define _f32vec4_false   ((F32vec4) __f32vec4_false_cheat.m)
 
#define _f1(A, F)   F32vec4(F(A[0]), F(A[1]), F(A[2]), F(A[3]))
 
#define _fvecalignment   __attribute__((aligned(16)))
 

Typedefs

typedef F32vec4 fvec
 
typedef float fscal
 

Functions

class F32vec4 __attribute__ ((aligned(16)))
 
float & operator[] (int i)
 
 F32vec4 ()
 
 F32vec4 (const __m128 &a)
 
 F32vec4 (const float &a)
 
 F32vec4 (const float &f0, const float &f1, const float &f2, const float &f3)
 
 operator __m128 () const
 
F32vec4 operator+ (const F32vec4 &a, const F32vec4 &b)
 
F32vec4 operator- (const F32vec4 &a, const F32vec4 &b)
 
F32vec4 operator* (const F32vec4 &a, const F32vec4 &b)
 
F32vec4 operator/ (const F32vec4 &a, const F32vec4 &b)
 
F32vec4 min (const F32vec4 &a, const F32vec4 &b)
 
F32vec4 max (const F32vec4 &a, const F32vec4 &b)
 
F32vec4 sqrt (const F32vec4 &a)
 
F32vec4 rsqrt (const F32vec4 &a)
 
F32vec4 rcp (const F32vec4 &a)
 
F32vec4 fabs (const F32vec4 &a)
 
F32vec4 sgn (const F32vec4 &a)
 
F32vec4 asgnb (const F32vec4 &a, const F32vec4 &b)
 
F32vec4 operator& (const F32vec4 &a, const F32vec4 &b)
 
F32vec4 operator| (const F32vec4 &a, const F32vec4 &b)
 
F32vec4 operator^ (const F32vec4 &a, const F32vec4 &b)
 
F32vec4 operator! (const F32vec4 &a)
 
F32vec4 operator< (const F32vec4 &a, const F32vec4 &b)
 
F32vec4 exp (const F32vec4 &a)
 
F32vec4 log (const F32vec4 &a)
 
F32vec4 sin (const F32vec4 &a)
 
F32vec4 cos (const F32vec4 &a)
 
 vec_arithmetic (F32vec4, float)
 
std::ostream & operator<< (std::ostream &strm, const F32vec4 &a)
 
std::istream & operator>> (std::istream &strm, F32vec4 &a)
 

Variables

union {
   float   f
 
   int   i
 
__f_one = {(float) 1.}
 
union {
   int   i [4]
 
   __m128   m
 
__f32vec4_abs_mask_cheat = {{0x7fffffff, 0x7fffffff, 0x7fffffff, 0x7fffffff}}
 
union {
   int   i [4]
 
   __m128   m
 
__f32vec4_sgn_mask_cheat
 
union {
   int   i [4]
 
   __m128   m
 
__f32vec4_zero_cheat = {{0, 0, 0, 0}}
 
union {
   int   i [4]
 
   __m128   m
 
__f32vec4_one_cheat = {{__f_one.i, __f_one.i, __f_one.i, __f_one.i}}
 
union {
   int   i [4]
 
   __m128   m
 
__f32vec4_true_cheat
 
union {
   int   i [4]
 
   __m128   m
 
__f32vec4_false_cheat = {{0x00000000, 0x00000000, 0x00000000, 0x00000000}}
 
__m128 v
 
const int fvecLen = 4
 

Macro Definition Documentation

◆ _f1

#define _f1 (   A,
 
)    F32vec4(F(A[0]), F(A[1]), F(A[2]), F(A[3]))

Definition at line 92 of file littrack/parallel/vectors/P4_F32vec4.h.

◆ _f32vec4_abs_mask

#define _f32vec4_abs_mask   ((F32vec4) __f32vec4_abs_mask_cheat.m)

Definition at line 42 of file littrack/parallel/vectors/P4_F32vec4.h.

◆ _f32vec4_false

#define _f32vec4_false   ((F32vec4) __f32vec4_false_cheat.m)

Definition at line 47 of file littrack/parallel/vectors/P4_F32vec4.h.

◆ _f32vec4_one

#define _f32vec4_one   ((F32vec4) __f32vec4_one_cheat.m)

Definition at line 45 of file littrack/parallel/vectors/P4_F32vec4.h.

◆ _f32vec4_sgn_mask

#define _f32vec4_sgn_mask   ((F32vec4) __f32vec4_sgn_mask_cheat.m)

Definition at line 43 of file littrack/parallel/vectors/P4_F32vec4.h.

◆ _f32vec4_true

#define _f32vec4_true   ((F32vec4) __f32vec4_true_cheat.m)

Definition at line 46 of file littrack/parallel/vectors/P4_F32vec4.h.

◆ _f32vec4_zero

#define _f32vec4_zero   ((F32vec4) __f32vec4_zero_cheat.m)

Definition at line 44 of file littrack/parallel/vectors/P4_F32vec4.h.

◆ _fvecalignment

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

Definition at line 174 of file littrack/parallel/vectors/P4_F32vec4.h.

Typedef Documentation

◆ fscal

typedef float fscal

Definition at line 169 of file littrack/parallel/vectors/P4_F32vec4.h.

◆ fvec

typedef F32vec4 fvec

Definition at line 168 of file littrack/parallel/vectors/P4_F32vec4.h.

Function Documentation

◆ __attribute__()

class F32vec4 __attribute__ ( (aligned(16))  )

◆ asgnb()

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

Definition at line 57 of file littrack/parallel/vectors/P4_F32vec4.h.

◆ cos()

friend F32vec4 __attribute__::cos ( const F32vec4 a)

Definition at line 96 of file littrack/parallel/vectors/P4_F32vec4.h.

◆ exp()

friend F32vec4 __attribute__::exp ( const F32vec4 a)

Definition at line 93 of file littrack/parallel/vectors/P4_F32vec4.h.

◆ F32vec4() [1/4]

__attribute__::F32vec4 ( )

Definition at line 6 of file littrack/parallel/vectors/P4_F32vec4.h.

◆ F32vec4() [2/4]

__attribute__::F32vec4 ( const __m128 &  a)

Definition at line 7 of file littrack/parallel/vectors/P4_F32vec4.h.

◆ F32vec4() [3/4]

__attribute__::F32vec4 ( const float &  a)

Definition at line 8 of file littrack/parallel/vectors/P4_F32vec4.h.

◆ F32vec4() [4/4]

__attribute__::F32vec4 ( const float &  f0,
const float &  f1,
const float &  f2,
const float &  f3 
)

Definition at line 10 of file littrack/parallel/vectors/P4_F32vec4.h.

◆ fabs()

friend F32vec4 __attribute__::fabs ( const F32vec4 a)

Definition at line 49 of file littrack/parallel/vectors/P4_F32vec4.h.

◆ log()

friend F32vec4 __attribute__::log ( const F32vec4 a)

Definition at line 94 of file littrack/parallel/vectors/P4_F32vec4.h.

◆ max()

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

Definition at line 34 of file littrack/parallel/vectors/P4_F32vec4.h.

References __f_one.

◆ min()

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

Definition at line 31 of file littrack/parallel/vectors/P4_F32vec4.h.

◆ operator __m128()

__attribute__::operator __m128 ( ) const

Definition at line 14 of file littrack/parallel/vectors/P4_F32vec4.h.

◆ operator!()

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

Definition at line 75 of file littrack/parallel/vectors/P4_F32vec4.h.

◆ operator&()

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

Definition at line 63 of file littrack/parallel/vectors/P4_F32vec4.h.

References F32vec4::v.

◆ operator*()

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

Definition at line 23 of file littrack/parallel/vectors/P4_F32vec4.h.

◆ operator+()

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

Definition at line 17 of file littrack/parallel/vectors/P4_F32vec4.h.

◆ operator-()

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

Definition at line 20 of file littrack/parallel/vectors/P4_F32vec4.h.

References f, and i.

◆ operator/()

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

Definition at line 26 of file littrack/parallel/vectors/P4_F32vec4.h.

◆ operator<()

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

Definition at line 84 of file littrack/parallel/vectors/P4_F32vec4.h.

◆ operator<<()

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

Definition at line 104 of file littrack/parallel/vectors/P4_F32vec4.h.

◆ operator>>()

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

Definition at line 109 of file littrack/parallel/vectors/P4_F32vec4.h.

◆ operator[]()

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

Definition at line 3 of file littrack/parallel/vectors/P4_F32vec4.h.

◆ operator^()

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

Definition at line 71 of file littrack/parallel/vectors/P4_F32vec4.h.

◆ operator|()

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

Definition at line 67 of file littrack/parallel/vectors/P4_F32vec4.h.

◆ rcp()

friend F32vec4 __attribute__::rcp ( const F32vec4 a)

Definition at line 45 of file littrack/parallel/vectors/P4_F32vec4.h.

◆ rsqrt()

friend F32vec4 __attribute__::rsqrt ( const F32vec4 a)

Definition at line 42 of file littrack/parallel/vectors/P4_F32vec4.h.

◆ sgn()

friend F32vec4 __attribute__::sgn ( const F32vec4 a)

Definition at line 54 of file littrack/parallel/vectors/P4_F32vec4.h.

◆ sin()

friend F32vec4 __attribute__::sin ( const F32vec4 a)

Definition at line 95 of file littrack/parallel/vectors/P4_F32vec4.h.

◆ sqrt()

friend F32vec4 __attribute__::sqrt ( const F32vec4 a)

Definition at line 39 of file littrack/parallel/vectors/P4_F32vec4.h.

◆ vec_arithmetic()

__attribute__::vec_arithmetic ( F32vec4  ,
float   
)

Variable Documentation

◆ __f32vec4_abs_mask_cheat

const { ... } __f32vec4_abs_mask_cheat

◆ __f32vec4_false_cheat

const { ... } __f32vec4_false_cheat

◆ __f32vec4_one_cheat

const { ... } __f32vec4_one_cheat

◆ __f32vec4_sgn_mask_cheat

const { ... } __f32vec4_sgn_mask_cheat
Initial value:
= {{static_cast<int>(0x80000000),
static_cast<int>(0x80000000),
static_cast<int>(0x80000000),
static_cast<int>(0x80000000)}}

◆ __f32vec4_true_cheat

const { ... } __f32vec4_true_cheat
Initial value:
= {{static_cast<int>(0xFFFFFFFF),
static_cast<int>(0xFFFFFFFF),
static_cast<int>(0xFFFFFFFF),
static_cast<int>(0xFFFFFFFF)}}

◆ __f32vec4_zero_cheat

const { ... } __f32vec4_zero_cheat

◆ __f_one

const { ... } __f_one

Referenced by max().

◆ f

float f

Definition at line 25 of file littrack/parallel/vectors/P4_F32vec4.h.

Referenced by operator-().

◆ fvecLen

const int fvecLen = 4

Definition at line 170 of file littrack/parallel/vectors/P4_F32vec4.h.

◆ i

int i[4]

Definition at line 26 of file littrack/parallel/vectors/P4_F32vec4.h.

Referenced by operator-(), and F32vec4::operator[]().

◆ m

__m128 m

Definition at line 27 of file littrack/parallel/vectors/P4_F32vec4.h.

◆ v

__m128 v

Definition at line 1 of file littrack/parallel/vectors/P4_F32vec4.h.