40 static int *
ucopy(
const int *
a,
int *
b,
int n);
41 static float *
ucopy(
const float *a,
float *b,
int n);
42 static double *
ucopy(
const float *a,
double *b,
int n);
43 static float *
ucopy(
const double *a,
float *b,
int n);
44 static double *
ucopy(
const double *a,
double *b,
int n);
45 static void **
ucopy(
const void **a,
void **b,
int n);
47 static float *
vzero(
float *a,
int n2);
48 static double *
vzero(
double *a,
int n2);
49 static void **
vzero(
void **a,
int n2);
51 static float *
vadd(
const float *b,
const float *c,
float *a,
int n);
52 static double *
vadd(
const double *b,
const double *c,
double *a,
int n);
54 static float *
vadd(
const float *b,
const double *c,
float *a,
int n);
55 static double *
vadd(
const double *b,
const float *c,
double *a,
int n);
57 static float vdot(
const float *b,
const float *a,
int n);
58 static double vdot(
const double *b,
const double *a,
int n);
60 static float *
vsub(
const float *a,
const float *b,
float *
x,
int n);
61 static double *
vsub(
const double *a,
const double *b,
double *x,
int n);
62 static float *
vsub(
const float *b,
const double *c,
float *a,
int n);
63 static double *
vsub(
const double *b,
const float *c,
double *a,
int n);
65 static float *
vcopyn(
const float *a,
float *x,
int n);
66 static double *
vcopyn(
const double *a,
double *x,
int n);
68 static float *
vscale(
const float *a,
float scale,
float *b,
int n);
69 static double *
vscale(
const double *a,
double scale,
double *b,
int n);
71 static float *
vlinco(
const float *a,
float fa,
const float *b,
float fb,
float *x,
int n);
72 static double *
vlinco(
const double *a,
double fa,
const double *b,
double fb,
double *x,
int n);
74 static float *
vmatl(
const float *
g,
const float *c,
float *x,
int n=3,
int m=3);
75 static double *
vmatl(
const double *g,
const double *c,
double *x,
int n=3,
int m=3);
77 static float *
vmatr(
const float *c,
const float *g,
float *x,
int n=3,
int m=3);
78 static double *
vmatr(
const double *c,
const double *g,
double *x,
int n=3,
int m=3);
80 static float *
mxmad_0_(
int n,
const float *a,
const float *b,
float *c,
int i,
int j,
int k);
82 static float *
mxmad(
const float *a,
const float *b,
float *c,
int i,
int j,
int k);
83 static float *
mxmad1(
const float *a,
const float *b,
float *c,
int i,
int j,
int k);
84 static float *
mxmad2(
const float *a,
const float *b,
float *c,
int i,
int j,
int k);
85 static float *
mxmad3(
const float *a,
const float *b,
float *c,
int i,
int j,
int k);
86 static float *
mxmpy(
const float *a,
const float *b,
float *c,
int i,
int j,
int k);
87 static float *
mxmpy1(
const float *a,
const float *b,
float *c,
int i,
int j,
int k);
88 static float *
mxmpy2(
const float *a,
const float *b,
float *c,
int i,
int j,
int k);
89 static float *
mxmpy3(
const float *a,
const float *b,
float *c,
int i,
int j,
int k);
90 static float *
mxmub(
const float *a,
const float *b,
float *c,
int i,
int j,
int k);
91 static float *
mxmub1(
const float *a,
const float *b,
float *c,
int i,
int j,
int k);
92 static float *
mxmub2(
const float *a,
const float *b,
float *c,
int i,
int j,
int k);
93 static float *
mxmub3(
const float *a,
const float *b,
float *c,
int i,
int j,
int k);
95 static float *
mxmlrt_0_(
int n__,
const float *a,
const float *b,
float *c,
int ni,
int nj);
96 static float *
mxmlrt(
const float *a,
const float *b,
float *c,
int ni,
int nj);
97 static float *
mxmltr(
const float *a,
const float *b,
float *c,
int ni,
int nj);
98 static float *
mxtrp(
const float *a,
float *b,
int i,
int j);
100 static double *
mxmad_0_(
int n,
const double *a,
const double *b,
double *c,
int i,
int j,
int k);
102 static double *
mxmad (
const double *a,
const double *b,
double *c,
int i,
int j,
int k);
103 static double *
mxmad1(
const double *a,
const double *b,
double *c,
int i,
int j,
int k);
104 static double *
mxmad2(
const double *a,
const double *b,
double *c,
int i,
int j,
int k);
105 static double *
mxmad3(
const double *a,
const double *b,
double *c,
int i,
int j,
int k);
106 static double *
mxmpy (
const double *a,
const double *b,
double *c,
int i,
int j,
int k);
107 static double *
mxmpy1(
const double *a,
const double *b,
double *c,
int i,
int j,
int k);
108 static double *
mxmpy2(
const double *a,
const double *b,
double *c,
int i,
int j,
int k);
109 static double *
mxmpy3(
const double *a,
const double *b,
double *c,
int i,
int j,
int k);
110 static double *
mxmub (
const double *a,
const double *b,
double *c,
int i,
int j,
int k);
111 static double *
mxmub1(
const double *a,
const double *b,
double *c,
int i,
int j,
int k);
112 static double *
mxmub2(
const double *a,
const double *b,
double *c,
int i,
int j,
int k);
113 static double *
mxmub3(
const double *a,
const double *b,
double *c,
int i,
int j,
int k);
115 static double *
mxmlrt_0_(
int n__,
const double *a,
const double *b,
double *c,
int ni,
int nj);
116 static double *
mxmlrt(
const double *a,
const double *b,
double *c,
int ni,
int nj);
117 static double *
mxmltr(
const double *a,
const double *b,
double *c,
int ni,
int nj);
118 static double *
mxtrp(
const double *a,
double *b,
int i,
int j);
122 static float *
traat(
const float *a,
float *
s,
int m,
int n);
123 static float *
tral(
const float *a,
const float *u,
float *b,
int m,
int n);
124 static float *
tralt(
const float *a,
const float *u,
float *b,
int m,
int n);
125 static float *
tras(
const float *a,
const float *s,
float *b,
int m,
int n);
126 static float *
trasat(
const float *a,
const float *s,
float *
r,
int m,
int n);
127 static float *
trasat(
const double *a,
const float *s,
float *r,
int m,
int n);
128 static float *
trata(
const float *a,
float *r,
int m,
int n);
129 static float *
trats(
const float *a,
const float *s,
float *b,
int m,
int n);
130 static float *
tratsa(
const float *a,
const float *s,
float *r,
int m,
int n);
131 static float *
trchlu(
const float *a,
float *b,
int n);
132 static float *
trchul(
const float *a,
float *b,
int n);
133 static float *
trinv(
const float *t,
float *s,
int n);
134 static float *
trla(
const float *u,
const float *a,
float *b,
int m,
int n);
135 static float *
trlta(
const float *u,
const float *a,
float *b,
int m,
int n);
136 static float *
trpck(
const float *s,
float *u,
int n);
137 static float *
trqsq(
const float *
q,
const float *s,
float *r,
int m);
138 static float *
trsa(
const float *s,
const float *a,
float *b,
int m,
int n);
139 static float *
trsinv(
const float *g,
float *gi,
int n);
140 static float *
trsmlu(
const float *u,
float *s,
int n);
141 static float *
trsmul(
const float *g,
float *gi,
int n);
142 static float *
trupck(
const float *u,
float *s,
int m);
143 static float *
trsat(
const float *s,
const float *a,
float *b,
int m,
int n);
146 static float *
trsequ(
float *smx,
int m=3,
float *b=0,
int n=1);
150 static double *
traat (
const double *a,
double *s,
int m,
int n);
151 static double *
tral (
const double *a,
const double *u,
double *b,
int m,
int n);
152 static double *
tralt (
const double *a,
const double *u,
double *b,
int m,
int n);
153 static double *
tras (
const double *a,
const double *s,
double *b,
int m,
int n);
154 static double *
trasat(
const double *a,
const double *s,
double *r,
int m,
int n);
155 static double *
trata (
const double *a,
double *r,
int m,
int n);
156 static double *
trats (
const double *a,
const double *s,
double *b,
int m,
int n);
157 static double *
tratsa(
const double *a,
const double *s,
double *r,
int m,
int n);
158 static double *
trchlu(
const double *a,
double *b,
int n);
159 static double *
trchul(
const double *a,
double *b,
int n);
160 static double *
trinv (
const double *t,
double *s,
int n);
161 static double *
trla (
const double *u,
const double *a,
double *b,
int m,
int n);
162 static double *
trlta (
const double *u,
const double *a,
double *b,
int m,
int n);
163 static double *
trpck (
const double *s,
double *u,
int n);
164 static double *
trqsq (
const double *q,
const double *s,
double *r,
int m);
165 static double *
trsa (
const double *s,
const double *a,
double *b,
int m,
int n);
166 static double *
trsinv(
const double *g,
double *gi,
int n);
167 static double *
trsmlu(
const double *u,
double *s,
int n);
168 static double *
trsmul(
const double *g,
double *gi,
int n);
169 static double *
trupck(
const double *u,
double *s,
int m);
170 static double *
trsat (
const double *s,
const double *a,
double *b,
int m,
int n);
173 static double *
trsequ(
double *smx,
int m=3,
double *b=0,
int n=1);
180 inline float *
TCL::mxmad(
const float *
a,
const float *
b,
float *c,
int i,
int j,
int k)
182 return mxmad_0_(0, a, b, c, i, j, k); }
185 inline float *
TCL::mxmad1(
const float *
a,
const float *
q,
float *c,
int i,
int j,
int k)
187 return mxmad_0_(1, a, q, c, i, j, k); }
190 inline float *
TCL::mxmad2(
const float *p,
const float *
b,
float *c,
int i,
int j,
int k)
192 return mxmad_0_(2, p, b, c, i, j, k); }
195 inline float *
TCL::mxmad3(
const float *p,
const float *
q,
float *c,
int i,
int j,
int k)
197 return mxmad_0_(3, p, q, c, i, j, k); }
200 inline float *
TCL::mxmpy(
const float *
a,
const float *
b,
float *c,
int i,
int j,
int k)
202 return mxmad_0_(4, a, b, c, i, j, k); }
205 inline float *
TCL::mxmpy1(
const float *
a,
const float *
q,
float *c,
int i,
int j,
int k)
207 return mxmad_0_(5, a, q, c, i, j, k); }
210 inline float *
TCL::mxmpy2(
const float *p,
const float *
b,
float *c,
int i,
int j,
int k)
212 return mxmad_0_(6, p, b, c, i, j, k); }
215 inline float *
TCL::mxmpy3(
const float *p,
const float *
q,
float *c,
int i,
int j,
int k)
217 return mxmad_0_(7, p, q, c, i, j, k); }
220 inline float *
TCL::mxmub(
const float *
a,
const float *
b,
float *c,
int i,
int j,
int k)
222 return mxmad_0_(8, a, b, c, i, j, k); }
225 inline float *
TCL::mxmub1(
const float *
a,
const float *
q,
float *c,
int i,
int j,
int k)
227 return mxmad_0_(9, a, q, c, i, j, k); }
230 inline float *
TCL::mxmub2(
const float *p,
const float *
b,
float *c,
int i,
int j,
int k)
232 return mxmad_0_(10, p, b, c, i, j, k); }
235 inline float *
TCL::mxmub3(
const float *p,
const float *
q,
float *c,
int i,
int j,
int k)
237 return mxmad_0_(11, p, q, c, i, j, k); }
240 inline float *
TCL::mxmlrt(
const float *
a,
const float *
b,
float *
x,
int ni,
int nj)
245 inline float *
TCL::mxmltr(
const float *
a,
const float *
b,
float *
x,
int ni,
int nj)
253 inline double *
TCL::mxmad(
const double *
a,
const double *
b,
double *c,
int i,
int j,
int k)
255 return mxmad_0_(0, a, b, c, i, j, k); }
258 inline double *
TCL:: mxmad1(
const double *
a,
const double *
b,
double *c,
int i,
int j,
int k)
260 return mxmad_0_(1, a, b, c, i, j, k); }
263 inline double *
TCL::mxmad2(
const double *
a,
const double *
b,
double *c,
int i,
int j,
int k)
265 return mxmad_0_(2, a, b, c, i, j, k); }
268 inline double *
TCL::mxmad3(
const double *
a,
const double *
b,
double *c,
int i,
int j,
int k)
270 return mxmad_0_(3, a, b, c, i, j, k); }
273 inline double *
TCL::mxmpy(
const double *
a,
const double *
b,
double *c,
int i,
int j,
int k)
275 return mxmad_0_(4, a, b, c, i, j, k); }
278 inline double *
TCL::mxmpy1(
const double *
a,
const double *
b,
double *c,
int i,
int j,
int k)
280 return mxmad_0_(5, a, b, c, i, j, k); }
283 inline double *
TCL::mxmpy2(
const double *
a,
const double *
b,
double *c,
int i,
int j,
int k)
285 return mxmad_0_(6, a, b, c, i, j, k); }
288 inline double *
TCL::mxmpy3(
const double *
a,
const double *
b,
double *c,
int i,
int j,
int k)
290 return mxmad_0_(7, a, b, c, i, j, k); }
293 inline double *
TCL::mxmub(
const double *
a,
const double *
b,
double *c,
int i,
int j,
int k)
295 return mxmad_0_(8, a, b, c, i, j, k); }
298 inline double *
TCL::mxmub1(
const double *
a,
const double *
b,
double *c,
int i,
int j,
int k)
300 return mxmad_0_(9, a, b, c, i, j, k); }
303 inline double *
TCL::mxmub2(
const double *
a,
const double *
b,
double *c,
int i,
int j,
int k)
305 return mxmad_0_(10, a, b, c, i, j, k); }
308 inline double *
TCL::mxmub3(
const double *
a,
const double *
b,
double *c,
int i,
int j,
int k)
310 return mxmad_0_(11, a, b, c, i, j, k); }
313 inline double *
TCL::mxmlrt(
const double *
a,
const double *
b,
double *c,
int ni,
int nj)
318 inline double *
TCL::mxmltr(
const double *
a,
const double *
b,
double *c,
int ni,
int nj)
328 if (n <= 0)
return 0;
329 memcpy(a,b,n*
sizeof(
int));
337 if (n <= 0)
return 0;
338 memcpy(a,b,n*
sizeof(
float));
346 if (n <= 0)
return 0;
347 for (
int i=0;i<
n;i++,a++,b++) *a =
float(*b);
355 if (n <= 0)
return 0;
356 for (
int i=0;i<
n;i++,a++,b++) *a =
double(*b);
364 if (n <= 0)
return 0;
365 memcpy(a,b,n*
sizeof(
double));
373 if (n <= 0)
return 0;
374 memcpy(a,b,n*
sizeof(
void *));
380 inline float *
TCL::vadd(
const float *
b,
const float *c,
float *
a,
int n)
383 if (n <= 0)
return 0;
384 for (
int i=0;i<
n;i++) a[i] = b[i] + c[i];
389 inline double *
TCL::vadd(
const double *
b,
const double *c,
double *
a,
int n)
392 if (n <= 0)
return 0;
393 for (
int i=0;i<
n;i++) a[i] = b[i] + c[i];
398 inline float *
TCL::vadd(
const float *
b,
const double *c,
float *
a,
int n)
401 if (n <= 0)
return 0;
402 for (
int i=0;i<
n;i++) a[i] = b[i] + c[i];
407 inline double *
TCL::vadd(
const double *
b,
const float *c,
double *
a,
int n)
410 if (n <= 0)
return 0;
411 for (
int i=0;i<
n;i++) a[i] = b[i] + c[i];
421 for (
int i=0;i<
n;i++,a++,b++) x += (*a) * (*b);
430 for (
int i=0;i<
n;i++,a++,b++) x += (*a) * (*b);
437 if (n <= 0)
return 0;
438 for (
int i=0;i<
n;i++) x[i] = a[i]-b[i];
443 inline double *
TCL::vsub(
const double *
a,
const double *
b,
double *
x,
int n)
446 if (n <= 0)
return 0;
447 for (
int i=0;i<
n;i++) x[i] = a[i]-b[i];
451 inline float *
TCL::vsub(
const float *
b,
const double *c,
float *
a,
int n)
454 if (n <= 0)
return 0;
455 for (
int i=0;i<
n;i++) a[i] = b[i] - c[i];
460 inline double *
TCL::vsub(
const double *
b,
const float *c,
double *
a,
int n)
463 if (n <= 0)
return 0;
464 for (
int i=0;i<
n;i++) a[i] = b[i] - c[i];
471 if (n <= 0)
return 0;
472 for (
int i=0;i<
n;i++) x[i] = -a[i];
479 if (n <= 0)
return 0;
480 for (
int i=0;i<
n;i++) x[i] = -a[i];
488 if (n1 <= 0)
return 0;
489 return (
float *)memset(a,0,n1*
sizeof(
float));
496 if (n1 <= 0)
return 0;
497 return (
double *)memset(a,0,n1*
sizeof(
double));
504 if (n1 <= 0)
return 0;
505 return (
void **)memset(a,0,n1*
sizeof(
void *));
512 for (
int i=0;i<
n;i++) b[i]=scale*a[i];
520 for (
int i=0;i<
n;i++) b[i]=scale*a[i];
525 inline float *
TCL::vlinco(
const float *
a,
float fa,
const float *
b,
float fb,
float *
x,
int n)
528 for (
int i=0;i<
n;i++){x[i]=a[i]*fa+b[i]*fb;};
533 inline double *
TCL::vlinco(
const double *
a,
double fa,
const double *
b,
double fb,
double *
x,
int n)
536 for (
int i=0;i<
n;i++) x[i]=a[i]*fa+b[i]*fb;
544 for (
int i=0; i<
n; i++) {
546 for (
int j=0; j<
m; j++) sum += G[j + m*i]*c[j];
553 inline double *
TCL::vmatl(
const double *
G,
const double *c,
double *
x,
int n,
int m)
556 for (
int i=0; i<
n; i++) {
558 for (
int j=0; j<
m; j++) sum += G[j + m*i]*c[j];
568 for (
int j=0; j<
m; j++) {
570 for (
int i=0; i<
n; i++) sum += G[j + n*i]*c[i];
577 inline double *
TCL::vmatr(
const double *c,
const double *
G,
double *
x,
int n,
int m)
580 for (
int j=0; j<
m; j++) {
582 for (
int i=0; i<
n; i++) sum += G[j + n*i]*c[i];
static float * mxmad2(const float *a, const float *b, float *c, int i, int j, int k)
static float * traat(const float *a, float *s, int m, int n)
Symmetric Multiplication of Rectangular Matrices.
static long int sum(long int i)
static float * mxmlrt(const float *a, const float *b, float *c, int ni, int nj)
static float * trsmul(const float *g, float *gi, int n)
trsmul.F – translated by f2c (version 19970219).
static float * mxmpy1(const float *a, const float *b, float *c, int i, int j, int k)
static float * vmatr(const float *c, const float *g, float *x, int n=3, int m=3)
static float * mxmpy3(const float *a, const float *b, float *c, int i, int j, int k)
static float * mxmltr(const float *a, const float *b, float *c, int ni, int nj)
static float * trata(const float *a, float *r, int m, int n)
trata.F – translated by f2c (version 19970219).
static float * mxtrp(const float *a, float *b, int i, int j)
Matrix Transposition.
static float * vscale(const float *a, float scale, float *b, int n)
static float vdot(const float *b, const float *a, int n)
static float * trinv(const float *t, float *s, int n)
trinv.F – translated by f2c (version 19970219).
#define ClassDef(name, id)
static float * trsat(const float *s, const float *a, float *b, int m, int n)
trsat.F – translated by f2c (version 19970219).
static float * mxmad_0_(int n, const float *a, const float *b, float *c, int i, int j, int k)
static float * vmatl(const float *g, const float *c, float *x, int n=3, int m=3)
static float * mxmub(const float *a, const float *b, float *c, int i, int j, int k)
static float * trpck(const float *s, float *u, int n)
trpck.F – translated by f2c (version 19970219).
static float * trsequ(float *smx, int m=3, float *b=0, int n=1)
Linear Equations, Matrix Inversion trsequ solves the matrix equation.
static float * trsa(const float *s, const float *a, float *b, int m, int n)
trsa.F – translated by f2c (version 19970219).
static float * tralt(const float *a, const float *u, float *b, int m, int n)
Triangular - Rectangular Multiplication.
static float * trlta(const float *u, const float *a, float *b, int m, int n)
trlta.F – translated by f2c (version 19970219).
static float * trqsq(const float *q, const float *s, float *r, int m)
trqsq.F – translated by f2c (version 19970219).
static float * mxmpy(const float *a, const float *b, float *c, int i, int j, int k)
static float * trats(const float *a, const float *s, float *b, int m, int n)
trats.F – translated by f2c (version 19970219).
static int * ucopy(const int *a, int *b, int n)
static float * tral(const float *a, const float *u, float *b, int m, int n)
Triangular - Rectangular Multiplication.
static float * trchul(const float *a, float *b, int n)
trchul.F – translated by f2c (version 19970219).
static float * trsinv(const float *g, float *gi, int n)
trsinv.F – translated by f2c (version 19970219).
static float * mxmpy2(const float *a, const float *b, float *c, int i, int j, int k)
static float * mxmub3(const float *a, const float *b, float *c, int i, int j, int k)
static float * trasat(const float *a, const float *s, float *r, int m, int n)
Transformation of Symmetric Matrix.
static float * trsmlu(const float *u, float *s, int n)
trsmlu.F – translated by f2c (version 19970219).
static float * tras(const float *a, const float *s, float *b, int m, int n)
Symmetric - Rectangular Multiplication.
static float * mxmlrt_0_(int n__, const float *a, const float *b, float *c, int ni, int nj)
Matrix Multiplication.
static float * vzero(float *a, int n2)
static constexpr double s
static float * vadd(const float *b, const float *c, float *a, int n)
static float * mxmad1(const float *a, const float *b, float *c, int i, int j, int k)
Array of doubles (64 bits per element).
static float * mxmub1(const float *a, const float *b, float *c, int i, int j, int k)
static float * vcopyn(const float *a, float *x, int n)
static float * vlinco(const float *a, float fa, const float *b, float fb, float *x, int n)
static float * trupck(const float *u, float *s, int m)
trupck.F – translated by f2c (version 19970219).
you should not use this method at all Int_t Int_t Double_t Double_t Double_t Int_t Double_t Double_t Double_t Double_t b
static float * mxmub2(const float *a, const float *b, float *c, int i, int j, int k)
static float * mxmad(const float *a, const float *b, float *c, int i, int j, int k)
static float * tratsa(const float *a, const float *s, float *r, int m, int n)
tratsa.F – translated by f2c (version 19970219).
static float * vsub(const float *a, const float *b, float *x, int n)
static float * mxmad3(const float *a, const float *b, float *c, int i, int j, int k)
static float * trchlu(const float *a, float *b, int n)
trchlu.F – translated by f2c (version 19970219).
static constexpr double g
static float * trla(const float *u, const float *a, float *b, int m, int n)
trla.F – translated by f2c (version 19970219).