FairRoot/PandaRoot
Public Member Functions | Public Attributes | Friends | List of all members
F32vec4 Class Reference

#include <P4_F32vec4.h>

Public Member Functions

float & operator[] (int i)
 
float operator[] (int i) const
 
 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
 
 vec_arithmetic (F32vec4, float)
 
float & operator[] (int i)
 
float operator[] (int i) const
 
 F32vec4 ()
 
 F32vec4 (const F32vec4 &a)
 
 F32vec4 (const float &a)
 
 F32vec4 (const float &f0, const float &f1, const float &f2, const float &f3)
 
 vec_arithmetic (F32vec4, float)
 

Public Attributes

__m128 v
 
float v [4]
 

Friends

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 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 bool2int (const F32vec4 &a)
 
F32vec4 exp (const F32vec4 &a)
 
F32vec4 log (const F32vec4 &a)
 
F32vec4 sin (const F32vec4 &a)
 
F32vec4 cos (const F32vec4 &a)
 
F32vec4 acos (const F32vec4 &a)
 
F32vec4 atan2 (const F32vec4 &y, const F32vec4 &x)
 
std::ostreamoperator<< (std::ostream &strm, const F32vec4 &a)
 
std::istreamoperator>> (std::istream &strm, F32vec4 &a)
 
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 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 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 if3 (const F32vec4 &a, const F32vec4 &b, const F32vec4 &c)
 
F32vec4 bool2int (const F32vec4 &a)
 
float min (float x, float y)
 
float max (float x, float y)
 
float asgnb (float x, float y)
 
float rsqrt (float x)
 
float rcp (float x)
 
float sgn (float x)
 
F32vec4 min (const F32vec4 &a, const F32vec4 &b)
 
F32vec4 max (const F32vec4 &a, const F32vec4 &b)
 
F32vec4 asgnb (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 exp (const F32vec4 &a)
 
F32vec4 log (const F32vec4 &a)
 
F32vec4 sin (const F32vec4 &a)
 
F32vec4 cos (const F32vec4 &a)
 
ostream & operator<< (ostream &strm, const F32vec4 &a)
 
istream & operator>> (istream &strm, F32vec4 &a)
 

Detailed Description

Definition at line 44 of file P4_F32vec4.h.

Constructor & Destructor Documentation

F32vec4::F32vec4 ( )
inline

Definition at line 53 of file P4_F32vec4.h.

53 :v(_mm_set_ps1(0)){}
__m128 v
Definition: P4_F32vec4.h:48
F32vec4::F32vec4 ( const __m128 &  a)
inline

Definition at line 54 of file P4_F32vec4.h.

54 :v(a) {}
Int_t a
Definition: anaLmdDigi.C:126
__m128 v
Definition: P4_F32vec4.h:48
F32vec4::F32vec4 ( const float &  a)
inline

Definition at line 55 of file P4_F32vec4.h.

55 :v(_mm_set_ps1(a)) {}
Int_t a
Definition: anaLmdDigi.C:126
__m128 v
Definition: P4_F32vec4.h:48
F32vec4::F32vec4 ( const float &  f0,
const float &  f1,
const float &  f2,
const float &  f3 
)
inline

Definition at line 57 of file P4_F32vec4.h.

57 :v(_mm_set_ps(f3,f2,f1,f0)) {}
TF1 * f1
Definition: reco_analys2.C:50
TFile * f3
TFile * f2
__m128 v
Definition: P4_F32vec4.h:48
F32vec4::F32vec4 ( )
inline

Definition at line 34 of file PSEUDO_F32vec4.h.

34 {}
F32vec4::F32vec4 ( const F32vec4 a)
inline

Definition at line 35 of file PSEUDO_F32vec4.h.

References v.

35  {
36  v[0] = a.v[0];
37  v[1] = a.v[1];
38  v[2] = a.v[2];
39  v[3] = a.v[3];
40  }
__m128 v
Definition: P4_F32vec4.h:48
F32vec4::F32vec4 ( const float &  a)
inline

Definition at line 41 of file PSEUDO_F32vec4.h.

References a.

41  {
42  v[0] = a;
43  v[1] = a;
44  v[2] = a;
45  v[3] = a;
46  }
Int_t a
Definition: anaLmdDigi.C:126
__m128 v
Definition: P4_F32vec4.h:48
F32vec4::F32vec4 ( const float &  f0,
const float &  f1,
const float &  f2,
const float &  f3 
)
inline

Definition at line 48 of file PSEUDO_F32vec4.h.

References f1, f2, and f3.

48  {
49  v[0] = f0;
50  v[1] = f1;
51  v[2] = f2;
52  v[3] = f3;
53  }
TF1 * f1
Definition: reco_analys2.C:50
TFile * f3
TFile * f2
__m128 v
Definition: P4_F32vec4.h:48

Member Function Documentation

F32vec4::operator __m128 ( ) const
inline

Definition at line 60 of file P4_F32vec4.h.

60 { return v; } /* Convert to __m128 */
__m128 v
Definition: P4_F32vec4.h:48
float& F32vec4::operator[] ( int  i)
inline

Definition at line 31 of file PSEUDO_F32vec4.h.

31 { return ((float*)&v)[i]; }
Int_t i
Definition: run_full.C:25
__m128 v
Definition: P4_F32vec4.h:48
float F32vec4::operator[] ( int  i) const
inline

Definition at line 32 of file PSEUDO_F32vec4.h.

32 { return ((float*)&v)[i]; }
Int_t i
Definition: run_full.C:25
__m128 v
Definition: P4_F32vec4.h:48
float& F32vec4::operator[] ( int  i)
inline

Definition at line 50 of file P4_F32vec4.h.

50 { return (reinterpret_cast<float*>(&v))[i]; }
unsigned int i
Definition: P4_F32vec4.h:22
__m128 v
Definition: P4_F32vec4.h:48
float F32vec4::operator[] ( int  i) const
inline

Definition at line 51 of file P4_F32vec4.h.

51 { return (reinterpret_cast<const float*>(&v))[i]; }
unsigned int i
Definition: P4_F32vec4.h:22
__m128 v
Definition: P4_F32vec4.h:48
F32vec4::vec_arithmetic ( F32vec4  ,
float   
)
F32vec4::vec_arithmetic ( F32vec4  ,
float   
)

Friends And Related Function Documentation

F32vec4 acos ( const F32vec4 a)
friend

Definition at line 157 of file P4_F32vec4.h.

157 { return _f1( a, acos ); }
friend F32vec4 acos(const F32vec4 &a)
Definition: P4_F32vec4.h:157
#define _f1(A, F)
Definition: P4_F32vec4.h:107
F32vec4 asgnb ( const F32vec4 a,
const F32vec4 b 
)
friend

Definition at line 95 of file P4_F32vec4.h.

Referenced by rcp().

95  {
96  return _mm_or_ps(_mm_and_ps(b, _f32vec4_sgn_mask),a);
97  }
#define _f32vec4_sgn_mask
Definition: P4_F32vec4.h:38
float asgnb ( float  x,
float  y 
)
friend

Definition at line 113 of file PSEUDO_F32vec4.h.

113 { return y>=0 ?fabs(x) :-fabs(x); }
Double_t x
friend F32vec4 fabs(const F32vec4 &a)
Definition: P4_F32vec4.h:91
Double_t y
F32vec4 asgnb ( const F32vec4 a,
const F32vec4 b 
)
friend

Definition at line 120 of file PSEUDO_F32vec4.h.

120 { _f2(a,b,asgnb) }
#define _f2(A, B, F)
friend F32vec4 asgnb(const F32vec4 &a, const F32vec4 &b)
Definition: P4_F32vec4.h:95
F32vec4 atan2 ( const F32vec4 y,
const F32vec4 x 
)
friend

Definition at line 161 of file P4_F32vec4.h.

161  {
162  const F32vec4 pi(3.1415926535897932);
163  const F32vec4 pi_2 = pi/2;
164  const F32vec4 zero(0);
165 
166  const F32vec4 &xZero = F32vec4(x == zero);
167  const F32vec4 &yZero = F32vec4(y == zero);
168  const F32vec4 &xNeg = F32vec4(x < zero);
169  const F32vec4 &yNeg = F32vec4(y < zero);
170 
171  const F32vec4 &absX = fabs(x);
172  const F32vec4 &absY = fabs(y);
173 
174  F32vec4 a = absY / absX;
175  const F32vec4 pi_4 = pi/4;
176  const F32vec4 &gt_tan_3pi_8 = F32vec4(a > F32vec4(2.414213562373095));
177  const F32vec4 &gt_tan_pi_8 = F32vec4(a > F32vec4(0.4142135623730950)) & F32vec4(!gt_tan_3pi_8);
178  const F32vec4 minusOne(-1);
179  F32vec4 b(zero);
180  b = (pi_2 & gt_tan_3pi_8) + (F32vec4(!gt_tan_3pi_8) & b);
181  b = (pi_4 & gt_tan_pi_8) + (F32vec4(!gt_tan_pi_8) & b);
182  a = (gt_tan_3pi_8 & (minusOne / a)) + (F32vec4(!gt_tan_3pi_8) & a);
183  a = (gt_tan_pi_8 & ((absY - absX) / (absY + absX))) + (F32vec4(!gt_tan_pi_8) & a) ;
184  const F32vec4 &a2 = a * a;
185  b += (((8.05374449538e-2 * a2
186  - 1.38776856032E-1) * a2
187  + 1.99777106478E-1) * a2
188  - 3.33329491539E-1) * a2 * a
189  + a;
190  F32vec4 xyNeg = F32vec4(xNeg ^ yNeg);
191  b = (xyNeg & (-b) ) + (F32vec4(!xyNeg) & b);
192  xyNeg = F32vec4(xNeg & !yNeg);
193  b = (xyNeg & (b+pi)) + (F32vec4(!xyNeg) & b);
194  xyNeg = F32vec4(xNeg & yNeg);
195  b = (xyNeg & (b-pi)) + (F32vec4(!xyNeg) & b);
196  xyNeg = F32vec4(xZero & yZero);
197  b = (xyNeg & zero) + (F32vec4(!xyNeg) & b);
198  xyNeg = F32vec4(xZero & yNeg);
199  b = (xyNeg & (-pi_2)) + (F32vec4(!xyNeg) & b);
200  return b;
201  }
TTree * b
#define pi
Definition: createSTT.C:60
Int_t a
Definition: anaLmdDigi.C:126
F32vec4()
Definition: P4_F32vec4.h:53
friend F32vec4 fabs(const F32vec4 &a)
Definition: P4_F32vec4.h:91
F32vec4 bool2int ( const F32vec4 a)
friend

Definition at line 104 of file PSEUDO_F32vec4.h.

104  { // mask returned
105  return if3(a,1,0);
106  }
friend F32vec4 if3(const F32vec4 &a, const F32vec4 &b, const F32vec4 &c)
F32vec4 bool2int ( const F32vec4 a)
friend

Definition at line 141 of file P4_F32vec4.h.

141  { // mask returned
142  return if3(a,1,0);
143  }
friend F32vec4 if3(const F32vec4 &a, const F32vec4 &b, const F32vec4 &c)
F32vec4 cos ( const F32vec4 a)
friend

Definition at line 129 of file PSEUDO_F32vec4.h.

129 { _f1(a,cos) }
friend F32vec4 cos(const F32vec4 &a)
Definition: P4_F32vec4.h:156
#define _f1(A, F)
F32vec4 cos ( const F32vec4 a)
friend

Definition at line 156 of file P4_F32vec4.h.

156 { return _f1( a, cos ); }
#define _f1(A, F)
Definition: P4_F32vec4.h:107
friend F32vec4 cos(const F32vec4 &a)
Definition: P4_F32vec4.h:156
F32vec4 exp ( const F32vec4 a)
friend

Definition at line 126 of file PSEUDO_F32vec4.h.

126 { _f1(a,exp) }
friend F32vec4 exp(const F32vec4 &a)
Definition: P4_F32vec4.h:153
#define _f1(A, F)
F32vec4 exp ( const F32vec4 a)
friend

Definition at line 153 of file P4_F32vec4.h.

Referenced by cos().

153 { return _f1( a, exp ); }
#define _f1(A, F)
Definition: P4_F32vec4.h:107
friend F32vec4 exp(const F32vec4 &a)
Definition: P4_F32vec4.h:153
F32vec4 fabs ( const F32vec4 a)
friend

Definition at line 91 of file P4_F32vec4.h.

Referenced by log(), and sgn().

91 { return _mm_and_ps(a, _f32vec4_abs_mask); }
#define _f32vec4_abs_mask
Definition: P4_F32vec4.h:37
F32vec4 fabs ( const F32vec4 a)
friend

Definition at line 124 of file PSEUDO_F32vec4.h.

124 { _f1(a,fabs) }
#define _f1(A, F)
friend F32vec4 fabs(const F32vec4 &a)
Definition: P4_F32vec4.h:91
F32vec4 if3 ( const F32vec4 a,
const F32vec4 b,
const F32vec4 c 
)
friend

Definition at line 90 of file PSEUDO_F32vec4.h.

90  {
91  F32vec4 z;
92  z[0] = (a[0]) ? b[0] : c[0];
93  z[1] = (a[1]) ? b[1] : c[1];
94  z[2] = (a[2]) ? b[2] : c[2];
95  z[3] = (a[3]) ? b[3] : c[3];
96 
97  return z;
98  }
Double_t z
F32vec4 log ( const F32vec4 a)
friend

Definition at line 127 of file PSEUDO_F32vec4.h.

127 { _f1(a,log) }
friend F32vec4 log(const F32vec4 &a)
Definition: P4_F32vec4.h:154
#define _f1(A, F)
F32vec4 log ( const F32vec4 a)
friend

Definition at line 154 of file P4_F32vec4.h.

154 { return _f1( a, log ); }
friend F32vec4 log(const F32vec4 &a)
Definition: P4_F32vec4.h:154
#define _f1(A, F)
Definition: P4_F32vec4.h:107
F32vec4 max ( const F32vec4 a,
const F32vec4 b 
)
friend

Definition at line 70 of file P4_F32vec4.h.

Referenced by rsqrt().

70 { return _mm_max_ps(a, b); }
float max ( float  x,
float  y 
)
friend

Definition at line 112 of file PSEUDO_F32vec4.h.

112 { return x<y ?y :x; }
Double_t x
Double_t y
F32vec4 max ( const F32vec4 a,
const F32vec4 b 
)
friend

Definition at line 119 of file PSEUDO_F32vec4.h.

119 { _f2(a,b,max) }
friend F32vec4 max(const F32vec4 &a, const F32vec4 &b)
Definition: P4_F32vec4.h:70
#define _f2(A, B, F)
F32vec4 min ( const F32vec4 a,
const F32vec4 b 
)
friend

Definition at line 69 of file P4_F32vec4.h.

Referenced by sqrt().

69 { return _mm_min_ps(a, b); }
float min ( float  x,
float  y 
)
friend

Definition at line 111 of file PSEUDO_F32vec4.h.

111 { return x<y ?x :y; }
Double_t x
Double_t y
F32vec4 min ( const F32vec4 a,
const F32vec4 b 
)
friend

Definition at line 118 of file PSEUDO_F32vec4.h.

118 { _f2(a,b,min) }
#define _f2(A, B, F)
friend F32vec4 min(const F32vec4 &a, const F32vec4 &b)
Definition: P4_F32vec4.h:69
F32vec4 operator! ( const F32vec4 a)
friend

Definition at line 80 of file PSEUDO_F32vec4.h.

80  {
81  F32vec4 z;
82  z[0] = !a[0];
83  z[1] = !a[1];
84  z[2] = !a[2];
85  z[3] = !a[3];
86 
87  return z;
88  }
Double_t z
F32vec4 operator! ( const F32vec4 a)
friend

Definition at line 110 of file P4_F32vec4.h.

110  { // mask returned
111  return _mm_xor_ps(a, _f32vec4_true);
112  }
#define _f32vec4_true
Definition: P4_F32vec4.h:41
F32vec4 operator& ( const F32vec4 a,
const F32vec4 b 
)
friend

Definition at line 76 of file PSEUDO_F32vec4.h.

76 { _op(a,b,&&) }
#define _op(A, B, O)
F32vec4 operator& ( const F32vec4 a,
const F32vec4 b 
)
friend

Definition at line 101 of file P4_F32vec4.h.

101  { // mask returned
102  return _mm_and_ps(a, b);
103  }
F32vec4 operator* ( const F32vec4 a,
const F32vec4 b 
)
friend

Definition at line 65 of file P4_F32vec4.h.

65 { return _mm_mul_ps(a,b); }
F32vec4 operator* ( const F32vec4 a,
const F32vec4 b 
)
friend

Definition at line 66 of file PSEUDO_F32vec4.h.

66 { _op(a,b,*) }
#define _op(A, B, O)
F32vec4 operator+ ( const F32vec4 a,
const F32vec4 b 
)
friend

Definition at line 63 of file P4_F32vec4.h.

63 { return _mm_add_ps(a,b); }
F32vec4 operator+ ( const F32vec4 a,
const F32vec4 b 
)
friend

Definition at line 64 of file PSEUDO_F32vec4.h.

64 { _op(a,b,+) }
#define _op(A, B, O)
F32vec4 operator- ( const F32vec4 a,
const F32vec4 b 
)
friend

Definition at line 64 of file P4_F32vec4.h.

64 { return _mm_sub_ps(a,b); }
F32vec4 operator- ( const F32vec4 a,
const F32vec4 b 
)
friend

Definition at line 65 of file PSEUDO_F32vec4.h.

65 { _op(a,b,-) }
#define _op(A, B, O)
F32vec4 operator/ ( const F32vec4 a,
const F32vec4 b 
)
friend

Definition at line 66 of file P4_F32vec4.h.

66 { return _mm_div_ps(a,b); }
F32vec4 operator/ ( const F32vec4 a,
const F32vec4 b 
)
friend

Definition at line 67 of file PSEUDO_F32vec4.h.

67 { _op(a,b,/) }
#define _op(A, B, O)
F32vec4 operator< ( const F32vec4 a,
const F32vec4 b 
)
friend

Definition at line 70 of file PSEUDO_F32vec4.h.

70 { _op(a,b,<) }
#define _op(A, B, O)
F32vec4 operator< ( const F32vec4 a,
const F32vec4 b 
)
friend

Definition at line 119 of file P4_F32vec4.h.

119  { // mask returned
120  return _mm_cmplt_ps(a, b);
121  }
ostream& operator<< ( ostream &  strm,
const F32vec4 a 
)
friend

Definition at line 138 of file PSEUDO_F32vec4.h.

138  {
139  strm<<a[0]<<" "<<a[1]<<" "<<a[2]<<" "<<a[3];
140  return strm;
141  }
std::ostream& operator<< ( std::ostream strm,
const F32vec4 a 
)
friend

Definition at line 203 of file P4_F32vec4.h.

203  {
204  strm<<"["<<a[0]<<" "<<a[1]<<" "<<a[2]<<" "<<a[3]<<"]";
205  return strm;
206  }
F32vec4 operator<= ( const F32vec4 a,
const F32vec4 b 
)
friend

Definition at line 71 of file PSEUDO_F32vec4.h.

71 { _op(a,b,<=) }
#define _op(A, B, O)
F32vec4 operator<= ( const F32vec4 a,
const F32vec4 b 
)
friend

Definition at line 122 of file P4_F32vec4.h.

122  { // mask returned
123  return _mm_cmple_ps(a, b);
124  }
F32vec4 operator== ( const F32vec4 a,
const F32vec4 b 
)
friend

Definition at line 131 of file P4_F32vec4.h.

131  { // mask returned
132  return _mm_cmpeq_ps(a, b);
133  }
F32vec4 operator> ( const F32vec4 a,
const F32vec4 b 
)
friend

Definition at line 72 of file PSEUDO_F32vec4.h.

72 { _op(a,b,>) }
#define _op(A, B, O)
F32vec4 operator> ( const F32vec4 a,
const F32vec4 b 
)
friend

Definition at line 125 of file P4_F32vec4.h.

125  { // mask returned
126  return _mm_cmpgt_ps(a, b);
127  }
F32vec4 operator>= ( const F32vec4 a,
const F32vec4 b 
)
friend

Definition at line 73 of file PSEUDO_F32vec4.h.

73 { _op(a,b,>=) }
#define _op(A, B, O)
F32vec4 operator>= ( const F32vec4 a,
const F32vec4 b 
)
friend

Definition at line 128 of file P4_F32vec4.h.

128  { // mask returned
129  return _mm_cmpge_ps(a, b);
130  }
istream& operator>> ( istream &  strm,
F32vec4 a 
)
friend

Definition at line 143 of file PSEUDO_F32vec4.h.

143  {
144  float tmp;
145  strm>>tmp;
146  a = tmp;
147  return strm;
148  }
std::istream& operator>> ( std::istream strm,
F32vec4 a 
)
friend

Definition at line 208 of file P4_F32vec4.h.

208  {
209  float tmp;
210  strm>>tmp;
211  a = tmp;
212  return strm;
213  }
F32vec4 operator^ ( const F32vec4 a,
const F32vec4 b 
)
friend

Definition at line 107 of file P4_F32vec4.h.

107  { // mask returned
108  return _mm_xor_ps(a, b);
109  }
F32vec4 operator| ( const F32vec4 a,
const F32vec4 b 
)
friend

Definition at line 77 of file PSEUDO_F32vec4.h.

77 { _op(a,b,||) }
#define _op(A, B, O)
F32vec4 operator| ( const F32vec4 a,
const F32vec4 b 
)
friend

Definition at line 104 of file P4_F32vec4.h.

104  { // mask returned
105  return _mm_or_ps(a, b);
106  }
F32vec4 operator|| ( const F32vec4 a,
const F32vec4 b 
)
friend

Definition at line 78 of file PSEUDO_F32vec4.h.

78 { _op(a,b,||) }
#define _op(A, B, O)
F32vec4 rcp ( const F32vec4 a)
friend

Definition at line 84 of file P4_F32vec4.h.

Referenced by exp().

84  {
85  F32vec4 Ra0 = _mm_rcp_ps(a);
86  return _mm_sub_ps(_mm_add_ps(Ra0, Ra0), _mm_mul_ps(_mm_mul_ps(Ra0, a), Ra0));
87  }
float rcp ( float  x)
friend

Definition at line 115 of file PSEUDO_F32vec4.h.

115 { return 1./x; }
Double_t x
F32vec4 rcp ( const F32vec4 a)
friend

Definition at line 123 of file PSEUDO_F32vec4.h.

123 { _f1(a,rcp) }
friend F32vec4 rcp(const F32vec4 &a)
Definition: P4_F32vec4.h:84
#define _f1(A, F)
F32vec4 rsqrt ( const F32vec4 a)
friend

Definition at line 76 of file P4_F32vec4.h.

Referenced by sgn().

76 { return _mm_rsqrt_ps(a); }
float rsqrt ( float  x)
friend

Definition at line 114 of file PSEUDO_F32vec4.h.

114 { return 1./sqrt(x); }
Double_t x
friend F32vec4 sqrt(const F32vec4 &a)
Definition: P4_F32vec4.h:73
F32vec4 rsqrt ( const F32vec4 a)
friend

Definition at line 122 of file PSEUDO_F32vec4.h.

122 { _f1(a,rsqrt) }
friend F32vec4 rsqrt(const F32vec4 &a)
Definition: P4_F32vec4.h:76
#define _f1(A, F)
F32vec4 sgn ( const F32vec4 a)
friend

Definition at line 94 of file P4_F32vec4.h.

Referenced by sin().

94 { return _mm_or_ps(_mm_and_ps(a, _f32vec4_sgn_mask),_f32vec4_one); }
#define _f32vec4_one
Definition: P4_F32vec4.h:40
#define _f32vec4_sgn_mask
Definition: P4_F32vec4.h:38
float sgn ( float  x)
friend

Definition at line 116 of file PSEUDO_F32vec4.h.

116 { return x>=0 ?1 :-1; }
Double_t x
F32vec4 sgn ( const F32vec4 a)
friend

Definition at line 125 of file PSEUDO_F32vec4.h.

125 { _f1(a,sgn) }
#define _f1(A, F)
friend F32vec4 sgn(const F32vec4 &a)
Definition: P4_F32vec4.h:94
F32vec4 sin ( const F32vec4 a)
friend

Definition at line 128 of file PSEUDO_F32vec4.h.

128 { _f1(a,sin) }
#define _f1(A, F)
friend F32vec4 sin(const F32vec4 &a)
Definition: P4_F32vec4.h:155
F32vec4 sin ( const F32vec4 a)
friend

Definition at line 155 of file P4_F32vec4.h.

155 { return _f1( a, sin ); }
#define _f1(A, F)
Definition: P4_F32vec4.h:107
friend F32vec4 sin(const F32vec4 &a)
Definition: P4_F32vec4.h:155
F32vec4 sqrt ( const F32vec4 a)
friend

Definition at line 73 of file P4_F32vec4.h.

Referenced by fabs().

73 { return _mm_sqrt_ps (a); }
F32vec4 sqrt ( const F32vec4 a)
friend

Definition at line 121 of file PSEUDO_F32vec4.h.

121 { _f1(a,sqrt) }
#define _f1(A, F)
friend F32vec4 sqrt(const F32vec4 &a)
Definition: P4_F32vec4.h:73

Member Data Documentation

float F32vec4::v[4]

Definition at line 29 of file PSEUDO_F32vec4.h.

__m128 F32vec4::v

Definition at line 48 of file P4_F32vec4.h.

Referenced by F32vec4(), and operator|().


The documentation for this class was generated from the following files: