18 bool operator == (
const Kinem& kinem)
const;
21 double mass(
int i)
const
23 return kdata[(i - 1) * (i + 2) / 2];
31 typedef union {
double d64; int64_t i64; }
DI64;
43 static const uint64_t idelta = 5;
46 bool eq(
const double& a,
const double& b)
const
50 const int64_t diff = ia.i64 - ib.i64;
51 return diff == 0LL ||
static_cast<uint64_t
>(llabs(diff)) <= idelta;
54 bool neq(
const double& a,
const double& b)
const
58 const int64_t diff = ia.i64 - ib.i64;
59 return diff != 0LL &&
static_cast<uint64_t
>(llabs(diff)) > idelta;
62 static const int KLEN = R * (R + 1) / 2;
67 ip5, is34, is45, is15, im5,
77 for (
int i = 0; i < KLEN; i++) {
78 if (not eq(kdata[i], kinem.kdata[i]))
return false;
86 for (
int i = 0; i < KLEN; i++) {
100 inline double m1()
const {
return kdata[im1]; }
108 double xm1,
double xm2)
115 inline double p1()
const {
return kdata[ip1]; }
116 inline double m1()
const {
return kdata[im1]; }
117 inline double m2()
const {
return kdata[im2]; }
124 Kinem3(
double xp1,
double xp2,
double xp3,
125 double xm1,
double xm2,
double xm3)
135 inline double p1()
const {
return kdata[ip1]; }
136 inline double p2()
const {
return kdata[ip2]; }
137 inline double p3()
const {
return kdata[ip3]; }
138 inline double m1()
const {
return kdata[im1]; }
139 inline double m2()
const {
return kdata[im2]; }
140 inline double m3()
const {
return kdata[im3]; }
147 Kinem4(
double xp1,
double xp2,
double xp3,
double xp4,
148 double xs12,
double xs23,
149 double xm1,
double xm2,
double xm3,
double xm4)
163 inline double p1()
const {
return kdata[ip1]; }
164 inline double p2()
const {
return kdata[ip2]; }
165 inline double p3()
const {
return kdata[ip3]; }
166 inline double p4()
const {
return kdata[ip4]; }
167 inline double m1()
const {
return kdata[im1]; }
168 inline double m2()
const {
return kdata[im2]; }
169 inline double m3()
const {
return kdata[im3]; }
170 inline double m4()
const {
return kdata[im4]; }
171 inline double s12()
const {
return kdata[is12]; }
172 inline double s23()
const {
return kdata[is23]; }
179 Kinem5(
double xp1,
double xp2,
double xp3,
double xp4,
double xp5,
180 double xs12,
double xs23,
double xs34,
double xs45,
double xs15,
181 double xm1,
double xm2,
double xm3,
double xm4,
double xm5)
200 inline double p1()
const {
return kdata[ip1]; }
201 inline double p2()
const {
return kdata[ip2]; }
202 inline double p3()
const {
return kdata[ip3]; }
203 inline double p4()
const {
return kdata[ip4]; }
204 inline double p5()
const {
return kdata[ip5]; }
205 inline double m1()
const {
return kdata[im1]; }
206 inline double m2()
const {
return kdata[im2]; }
207 inline double m3()
const {
return kdata[im3]; }
208 inline double m4()
const {
return kdata[im4]; }
209 inline double m5()
const {
return kdata[im5]; }
210 inline double s12()
const {
return kdata[is12]; }
211 inline double s23()
const {
return kdata[is23]; }
212 inline double s34()
const {
return kdata[is34]; }
213 inline double s45()
const {
return kdata[is45]; }
214 inline double s15()
const {
return kdata[is15]; }