39 static int *
ucopy(
const int *
a,
int *b,
int n);
40 static float *
ucopy(
const float *
a,
float *b,
int n);
41 static double *
ucopy(
const float *
a,
double *b,
int n);
42 static float *
ucopy(
const double *
a,
float *b,
int n);
43 static double *
ucopy(
const double *
a,
double *b,
int n);
44 static void **
ucopy(
const void **
a,
void **b,
int n);
46 static float *
vzero(
float *
a,
int n2);
47 static double *
vzero(
double *
a,
int n2);
48 static void **
vzero(
void **
a,
int n2);
50 static float *
vadd(
const float *b,
const float *
c,
float *
a,
int n);
51 static double *
vadd(
const double *b,
const double *
c,
double *
a,
int n);
53 static float *
vadd(
const float *b,
const double *
c,
float *
a,
int n);
54 static double *
vadd(
const double *b,
const float *
c,
double *
a,
int n);
56 static float vdot(
const float *b,
const float *
a,
int n);
57 static double vdot(
const double *b,
const double *
a,
int n);
59 static float *
vsub(
const float *
a,
const float *b,
float *
x,
int n);
60 static double *
vsub(
const double *
a,
const double *b,
double *
x,
int n);
61 static float *
vsub(
const float *b,
const double *
c,
float *
a,
int n);
62 static double *
vsub(
const double *b,
const float *
c,
double *
a,
int n);
64 static float *
vcopyn(
const float *
a,
float *
x,
int n);
65 static double *
vcopyn(
const double *
a,
double *
x,
int n);
67 static float *
vscale(
const float *
a,
float scale,
float *b,
int n);
68 static double *
vscale(
const double *
a,
double scale,
double *b,
int n);
70 static float *
vlinco(
const float *
a,
float fa,
const float *b,
float fb,
float *
x,
int n);
71 static double *
vlinco(
const double *
a,
double fa,
const double *b,
double fb,
double *
x,
int n);
73 static float *
vmatl(
const float *
g,
const float *
c,
float *
x,
int n=3,
int m=3);
74 static double *
vmatl(
const double *
g,
const double *
c,
double *
x,
int n=3,
int m=3);
76 static float *
vmatr(
const float *
c,
const float *
g,
float *
x,
int n=3,
int m=3);
77 static double *
vmatr(
const double *
c,
const double *
g,
double *
x,
int n=3,
int m=3);
79 static float *
mxmad_0_(
int n,
const float *
a,
const float *b,
float *
c,
int i,
int j,
int k);
81 static float *
mxmad(
const float *
a,
const float *b,
float *
c,
int i,
int j,
int k);
82 static float *
mxmad1(
const float *
a,
const float *b,
float *
c,
int i,
int j,
int k);
83 static float *
mxmad2(
const float *
a,
const float *b,
float *
c,
int i,
int j,
int k);
84 static float *
mxmad3(
const float *
a,
const float *b,
float *
c,
int i,
int j,
int k);
85 static float *
mxmpy(
const float *
a,
const float *b,
float *
c,
int i,
int j,
int k);
86 static float *
mxmpy1(
const float *
a,
const float *b,
float *
c,
int i,
int j,
int k);
87 static float *
mxmpy2(
const float *
a,
const float *b,
float *
c,
int i,
int j,
int k);
88 static float *
mxmpy3(
const float *
a,
const float *b,
float *
c,
int i,
int j,
int k);
89 static float *
mxmub(
const float *
a,
const float *b,
float *
c,
int i,
int j,
int k);
90 static float *
mxmub1(
const float *
a,
const float *b,
float *
c,
int i,
int j,
int k);
91 static float *
mxmub2(
const float *
a,
const float *b,
float *
c,
int i,
int j,
int k);
92 static float *
mxmub3(
const float *
a,
const float *b,
float *
c,
int i,
int j,
int k);
94 static float *
mxmlrt_0_(
int n__,
const float *
a,
const float *b,
float *
c,
int ni,
int nj);
95 static float *
mxmlrt(
const float *
a,
const float *b,
float *
c,
int ni,
int nj);
96 static float *
mxmltr(
const float *
a,
const float *b,
float *
c,
int ni,
int nj);
97 static float *
mxtrp(
const float *
a,
float *b,
int i,
int j);
99 static double *
mxmad_0_(
int n,
const double *
a,
const double *b,
double *
c,
int i,
int j,
int k);
101 static double *
mxmad (
const double *
a,
const double *b,
double *
c,
int i,
int j,
int k);
102 static double *
mxmad1(
const double *
a,
const double *b,
double *
c,
int i,
int j,
int k);
103 static double *
mxmad2(
const double *
a,
const double *b,
double *
c,
int i,
int j,
int k);
104 static double *
mxmad3(
const double *
a,
const double *b,
double *
c,
int i,
int j,
int k);
105 static double *
mxmpy (
const double *
a,
const double *b,
double *
c,
int i,
int j,
int k);
106 static double *
mxmpy1(
const double *
a,
const double *b,
double *
c,
int i,
int j,
int k);
107 static double *
mxmpy2(
const double *
a,
const double *b,
double *
c,
int i,
int j,
int k);
108 static double *
mxmpy3(
const double *
a,
const double *b,
double *
c,
int i,
int j,
int k);
109 static double *
mxmub (
const double *
a,
const double *b,
double *
c,
int i,
int j,
int k);
110 static double *
mxmub1(
const double *
a,
const double *b,
double *
c,
int i,
int j,
int k);
111 static double *
mxmub2(
const double *
a,
const double *b,
double *
c,
int i,
int j,
int k);
112 static double *
mxmub3(
const double *
a,
const double *b,
double *
c,
int i,
int j,
int k);
114 static double *
mxmlrt_0_(
int n__,
const double *
a,
const double *b,
double *
c,
int ni,
int nj);
115 static double *
mxmlrt(
const double *
a,
const double *b,
double *
c,
int ni,
int nj);
116 static double *
mxmltr(
const double *
a,
const double *b,
double *
c,
int ni,
int nj);
117 static double *
mxtrp(
const double *
a,
double *b,
int i,
int j);
121 static float *
traat(
const float *
a,
float *s,
int m,
int n);
122 static float *
tral(
const float *
a,
const float *u,
float *b,
int m,
int n);
123 static float *
tralt(
const float *
a,
const float *u,
float *b,
int m,
int n);
124 static float *
tras(
const float *
a,
const float *s,
float *b,
int m,
int n);
125 static float *
trasat(
const float *
a,
const float *s,
float *
r,
int m,
int n);
126 static float *
trasat(
const double *
a,
const float *s,
float *
r,
int m,
int n);
127 static float *
trata(
const float *
a,
float *
r,
int m,
int n);
128 static float *
trats(
const float *
a,
const float *s,
float *b,
int m,
int n);
129 static float *
tratsa(
const float *
a,
const float *s,
float *
r,
int m,
int n);
130 static float *
trchlu(
const float *
a,
float *b,
int n);
131 static float *
trchul(
const float *
a,
float *b,
int n);
132 static float *
trinv(
const float *t,
float *s,
int n);
133 static float *
trla(
const float *u,
const float *
a,
float *b,
int m,
int n);
134 static float *
trlta(
const float *u,
const float *
a,
float *b,
int m,
int n);
135 static float *
trpck(
const float *s,
float *u,
int n);
136 static float *
trqsq(
const float *
q,
const float *s,
float *
r,
int m);
137 static float *
trsa(
const float *s,
const float *
a,
float *b,
int m,
int n);
138 static float *
trsinv(
const float *
g,
float *gi,
int n);
139 static float *
trsmlu(
const float *u,
float *s,
int n);
140 static float *
trsmul(
const float *
g,
float *gi,
int n);
141 static float *
trupck(
const float *u,
float *s,
int m);
142 static float *
trsat(
const float *s,
const float *
a,
float *b,
int m,
int n);
145 static float *
trsequ(
float *smx,
int m=3,
float *b=0,
int n=1);
149 static double *
traat (
const double *
a,
double *s,
int m,
int n);
150 static double *
tral (
const double *
a,
const double *u,
double *b,
int m,
int n);
151 static double *
tralt (
const double *
a,
const double *u,
double *b,
int m,
int n);
152 static double *
tras (
const double *
a,
const double *s,
double *b,
int m,
int n);
153 static double *
trasat(
const double *
a,
const double *s,
double *
r,
int m,
int n);
154 static double *
trata (
const double *
a,
double *
r,
int m,
int n);
155 static double *
trats (
const double *
a,
const double *s,
double *b,
int m,
int n);
156 static double *
tratsa(
const double *
a,
const double *s,
double *
r,
int m,
int n);
157 static double *
trchlu(
const double *
a,
double *b,
int n);
158 static double *
trchul(
const double *
a,
double *b,
int n);
159 static double *
trinv (
const double *t,
double *s,
int n);
160 static double *
trla (
const double *u,
const double *
a,
double *b,
int m,
int n);
161 static double *
trlta (
const double *u,
const double *
a,
double *b,
int m,
int n);
162 static double *
trpck (
const double *s,
double *u,
int n);
163 static double *
trqsq (
const double *
q,
const double *s,
double *
r,
int m);
164 static double *
trsa (
const double *s,
const double *
a,
double *b,
int m,
int n);
165 static double *
trsinv(
const double *
g,
double *gi,
int n);
166 static double *
trsmlu(
const double *u,
double *s,
int n);
167 static double *
trsmul(
const double *
g,
double *gi,
int n);
168 static double *
trupck(
const double *u,
double *s,
int m);
169 static double *
trsat (
const double *s,
const double *
a,
double *b,
int m,
int n);
172 static double *
trsequ(
double *smx,
int m=3,
double *b=0,
int n=1);
179 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)
188 return mxmad_0_(1, a, q, c, i, j, k); }
191 inline float *
TCL::mxmad2(
const float *p,
const float *b,
float *
c,
int i,
int j,
int k)
194 return mxmad_0_(2, p, b, c, i, j, k); }
197 inline float *
TCL::mxmad3(
const float *p,
const float *
q,
float *
c,
int i,
int j,
int k)
200 return mxmad_0_(3, p, q, c, i, j, k); }
203 inline float *
TCL::mxmpy(
const float *
a,
const float *b,
float *
c,
int i,
int j,
int k)
206 return mxmad_0_(4, a, b, c, i, j, k); }
209 inline float *
TCL::mxmpy1(
const float *
a,
const float *
q,
float *
c,
int i,
int j,
int k)
212 return mxmad_0_(5, a, q, c, i, j, k); }
215 inline float *
TCL::mxmpy2(
const float *p,
const float *b,
float *
c,
int i,
int j,
int k)
218 return mxmad_0_(6, p, b, c, i, j, k); }
221 inline float *
TCL::mxmpy3(
const float *p,
const float *
q,
float *
c,
int i,
int j,
int k)
224 return mxmad_0_(7, p, q, c, i, j, k); }
227 inline float *
TCL::mxmub(
const float *
a,
const float *b,
float *
c,
int i,
int j,
int k)
230 return mxmad_0_(8, a, b, c, i, j, k); }
233 inline float *
TCL::mxmub1(
const float *
a,
const float *
q,
float *
c,
int i,
int j,
int k)
236 return mxmad_0_(9, a, q, c, i, j, k); }
239 inline float *
TCL::mxmub2(
const float *p,
const float *b,
float *
c,
int i,
int j,
int k)
242 return mxmad_0_(10, p, b, c, i, j, k); }
245 inline float *
TCL::mxmub3(
const float *p,
const float *
q,
float *
c,
int i,
int j,
int k)
248 return mxmad_0_(11, p, q, c, i, j, k); }
251 inline float *
TCL::mxmlrt(
const float *
a,
const float *b,
float *
x,
int ni,
int nj)
257 inline float *
TCL::mxmltr(
const float *
a,
const float *b,
float *
x,
int ni,
int nj)
266 inline double *
TCL::mxmad(
const double *
a,
const double *b,
double *
c,
int i,
int j,
int k)
269 return mxmad_0_(0, a, b, c, i, j, k); }
272 inline double *
TCL:: mxmad1(
const double *
a,
const double *b,
double *
c,
int i,
int j,
int k)
275 return mxmad_0_(1, a, b, c, i, j, k); }
278 inline double *
TCL::mxmad2(
const double *
a,
const double *b,
double *
c,
int i,
int j,
int k)
281 return mxmad_0_(2, a, b, c, i, j, k); }
284 inline double *
TCL::mxmad3(
const double *
a,
const double *b,
double *
c,
int i,
int j,
int k)
287 return mxmad_0_(3, a, b, c, i, j, k); }
290 inline double *
TCL::mxmpy(
const double *
a,
const double *b,
double *
c,
int i,
int j,
int k)
293 return mxmad_0_(4, a, b, c, i, j, k); }
296 inline double *
TCL::mxmpy1(
const double *
a,
const double *b,
double *
c,
int i,
int j,
int k)
299 return mxmad_0_(5, a, b, c, i, j, k); }
302 inline double *
TCL::mxmpy2(
const double *
a,
const double *b,
double *
c,
int i,
int j,
int k)
305 return mxmad_0_(6, a, b, c, i, j, k); }
308 inline double *
TCL::mxmpy3(
const double *
a,
const double *b,
double *
c,
int i,
int j,
int k)
311 return mxmad_0_(7, a, b, c, i, j, k); }
314 inline double *
TCL::mxmub(
const double *
a,
const double *b,
double *
c,
int i,
int j,
int k)
317 return mxmad_0_(8, a, b, c, i, j, k); }
320 inline double *
TCL::mxmub1(
const double *
a,
const double *b,
double *
c,
int i,
int j,
int k)
323 return mxmad_0_(9, a, b, c, i, j, k); }
326 inline double *
TCL::mxmub2(
const double *
a,
const double *b,
double *
c,
int i,
int j,
int k)
329 return mxmad_0_(10, a, b, c, i, j, k); }
332 inline double *
TCL::mxmub3(
const double *
a,
const double *b,
double *
c,
int i,
int j,
int k)
335 return mxmad_0_(11, a, b, c, i, j, k); }
338 inline double *
TCL::mxmlrt(
const double *
a,
const double *b,
double *
c,
int ni,
int nj)
344 inline double *
TCL::mxmltr(
const double *
a,
const double *b,
double *
c,
int ni,
int nj)
355 if (n <= 0)
return 0;
356 memcpy(a,b,n*
sizeof(
int));
364 if (n <= 0)
return 0;
365 memcpy(a,b,n*
sizeof(
float));
373 if (n <= 0)
return 0;
374 for (
int i=0;i<
n;i++,a++,b++) *a =
float(*b);
382 if (n <= 0)
return 0;
383 for (
int i=0;i<
n;i++,a++,b++) *a =
double(*b);
391 if (n <= 0)
return 0;
392 memcpy(a,b,n*
sizeof(
double));
400 if (n <= 0)
return 0;
401 memcpy(a,b,n*
sizeof(
void *));
407 inline float *
TCL::vadd(
const float *b,
const float *
c,
float *
a,
int n)
410 if (n <= 0)
return 0;
411 for (
int i=0;i<
n;i++) a[i] = b[i] + c[i];
416 inline double *
TCL::vadd(
const double *b,
const double *
c,
double *
a,
int n)
419 if (n <= 0)
return 0;
420 for (
int i=0;i<
n;i++) a[i] = b[i] + c[i];
425 inline float *
TCL::vadd(
const float *b,
const double *
c,
float *
a,
int n)
428 if (n <= 0)
return 0;
429 for (
int i=0;i<
n;i++) a[i] = b[i] + c[i];
434 inline double *
TCL::vadd(
const double *b,
const float *
c,
double *
a,
int n)
437 if (n <= 0)
return 0;
438 for (
int i=0;i<
n;i++) a[i] = b[i] + c[i];
448 for (
int i=0;i<
n;i++,a++,b++) x += (*a) * (*b);
457 for (
int i=0;i<
n;i++,a++,b++) x += (*a) * (*b);
461 inline float *
TCL::vsub(
const float *
a,
const float *b,
float *
x,
int n)
464 if (n <= 0)
return 0;
465 for (
int i=0;i<
n;i++) x[i] = a[i]-b[i];
470 inline double *
TCL::vsub(
const double *
a,
const double *b,
double *
x,
int n)
473 if (n <= 0)
return 0;
474 for (
int i=0;i<
n;i++) x[i] = a[i]-b[i];
478 inline float *
TCL::vsub(
const float *b,
const double *
c,
float *
a,
int n)
481 if (n <= 0)
return 0;
482 for (
int i=0;i<
n;i++) a[i] = b[i] - c[i];
487 inline double *
TCL::vsub(
const double *b,
const float *
c,
double *
a,
int n)
490 if (n <= 0)
return 0;
491 for (
int i=0;i<
n;i++) a[i] = b[i] - c[i];
498 if (n <= 0)
return 0;
499 for (
int i=0;i<
n;i++) x[i] = -a[i];
506 if (n <= 0)
return 0;
507 for (
int i=0;i<
n;i++) x[i] = -a[i];
515 if (n1 <= 0)
return 0;
516 return (
float *)memset(a,0,n1*
sizeof(
float));
523 if (n1 <= 0)
return 0;
524 return (
double *)memset(a,0,n1*
sizeof(
double));
531 if (n1 <= 0)
return 0;
532 return (
void **)memset(a,0,n1*
sizeof(
void *));
539 for (
int i=0;i<
n;i++) b[i]=scale*a[i];
547 for (
int i=0;i<
n;i++) b[i]=scale*a[i];
552 inline float *
TCL::vlinco(
const float *
a,
float fa,
const float *b,
float fb,
float *
x,
int n)
555 for (
int i=0;i<
n;i++){x[i]=a[i]*fa+b[i]*fb;};
560 inline double *
TCL::vlinco(
const double *
a,
double fa,
const double *b,
double fb,
double *
x,
int n)
563 for (
int i=0;i<
n;i++) x[i]=a[i]*fa+b[i]*fb;
571 for (
int i=0; i<
n; i++) {
573 for (
int j=0; j<
m; j++) sum += G[j + m*i]*c[j];
583 for (
int i=0; i<
n; i++) {
585 for (
int j=0; j<
m; j++) sum += G[j + m*i]*c[j];
595 for (
int j=0; j<
m; j++) {
597 for (
int i=0; i<
n; i++) sum += G[j + n*i]*c[i];
607 for (
int j=0; j<
m; j++) {
609 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 * trla(const float *u, const float *a, float *b, int m, int n)
static float * mxmlrt(const float *a, const float *b, float *c, int ni, int nj)
static float * trchlu(const float *a, float *b, int n)
static float * trsa(const float *s, const float *a, float *b, int m, int n)
static float * mxmad_0_(int n, const float *a, const float *b, float *c, int i, int j, int k)
static float * trsmul(const float *g, float *gi, int n)
static float * mxmpy1(const float *a, const float *b, float *c, int i, int j, int k)
static float * trinv(const float *t, float *s, int n)
static float * vmatr(const float *c, const float *g, float *x, int n=3, int m=3)
static float * tratsa(const float *a, const float *s, float *r, int m, int n)
static float * mxmpy3(const float *a, const float *b, float *c, int i, int j, int k)
static float * trlta(const float *u, const float *a, float *b, int m, int n)
static float * tras(const float *a, const float *s, float *b, int m, int n)
static float * trsmlu(const float *u, float *s, int n)
static float * trsat(const float *s, const float *a, float *b, int m, int n)
static float * mxmltr(const float *a, const float *b, float *c, int ni, int nj)
static float * trsequ(float *smx, int m=3, float *b=0, int n=1)
static float * trpck(const float *s, float *u, int n)
static float * mxtrp(const float *a, float *b, int i, int j)
Matrix Transposition CERN PROGLIB# F110 MXTRP .VERSION KERNFOR 1.0 650809 ORIG.
static float * vscale(const float *a, float scale, float *b, int n)
static float vdot(const float *b, const float *a, int n)
#define ClassDef(name, id)
static float * trupck(const float *u, float *s, int m)
static float * trats(const float *a, const float *s, float *b, int m, int n)
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 * trchul(const float *a, float *b, int n)
static float * trata(const float *a, float *r, int m, int n)
static float * mxmpy(const float *a, const float *b, float *c, int i, int j, int k)
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 CERN PROGLIB# F112 TRAL .VERSION KERNFOR 4.15 861204 ORIG.
static float * mxmpy2(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)
static float * mxmub3(const float *a, const float *b, float *c, int i, int j, int k)
static float * tralt(const float *a, const float *u, float *b, int m, int n)
static float * mxmlrt_0_(int n__, const float *a, const float *b, float *c, int ni, int nj)
Matrix Multiplication CERN PROGLIB# F110 MXMLRT .VERSION KERNFOR 2.00 720707 ORIG.
static float * vzero(float *a, int n2)
static float * traat(const float *a, float *s, int m, int n)
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 * trqsq(const float *q, const float *s, float *r, int m)
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 * 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 * trsinv(const float *g, float *gi, int n)
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)