1#ifndef L1Algo_PSEUDO_F64vec1_H
2#define L1Algo_PSEUDO_F64vec1_H
31 friend double min(
double x,
double y ){
return x<y ?x :y; }
32 friend double max(
double x,
double y ){
return x<y ?y :x; }
33 friend double asgnb(
double x,
double y ){
return y>=0 ?
fabs(x) :-
fabs(x); }
34 friend double rsqrt(
double x ){
return 1./
sqrt(x); }
35 friend double rcp(
double x ){
return 1./x; }
36 friend double sgn(
double x ){
return x>=0 ?1 :-1; }
38#define _f2(A,B,F) F64vec1 z; z.v[0] = F(A.v[0],B.v[0]); return z;
39#define _f1(A,F) F64vec1 z; z.v[0] = F(A.v[0]); return z;
40#define _op(A,B,O) F64vec1 z; z.v[0] = A.v[0] O B.v[0]; return z;
friend F64vec1 sgn(const F64vec1 &a)
friend F64vec1 sqrt(const F64vec1 &a)
vec_arithmetic(F64vec1, double)
friend double max(double x, double y)
friend F64vec1 exp(const F64vec1 &a)
friend double min(double x, double y)
friend F64vec1 operator-(const F64vec1 &a, const F64vec1 &b)
F64vec1(const F64vec1 &a)
friend double sgn(double x)
friend F64vec1 operator+(const F64vec1 &a, const F64vec1 &b)
friend F64vec1 asgnb(const F64vec1 &a, const F64vec1 &b)
friend double asgnb(double x, double y)
friend F64vec1 max(const F64vec1 &a, const F64vec1 &b)
double operator[](int i) const
friend double rcp(double x)
friend F64vec1 log(const F64vec1 &a)
friend F64vec1 min(const F64vec1 &a, const F64vec1 &b)
friend F64vec1 rsqrt(const F64vec1 &a)
friend F64vec1 fabs(const F64vec1 &a)
double & operator[](int i)
friend F64vec1 operator/(const F64vec1 &a, const F64vec1 &b)
friend F64vec1 operator*(const F64vec1 &a, const F64vec1 &b)
friend F64vec1 rcp(const F64vec1 &a)
friend double rsqrt(double x)
friend std::istream & operator>>(std::istream &strm, F64vec1 &a)
friend F64vec1 sin(const F64vec1 &a)
friend std::ostream & operator<<(std::ostream &strm, const F64vec1 &a)
friend F64vec1 cos(const F64vec1 &a)