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)
183 return mxmad_0_(0, a, b, c, i, j, k); }
186 inline float *
TCL::mxmad1(
const float *
a,
const float *
q,
float *
c,
int i,
int j,
int k)
189 return mxmad_0_(1, a, q, c, i, j, k); }
192 inline float *
TCL::mxmad2(
const float *p,
const float *b,
float *
c,
int i,
int j,
int k)
195 return mxmad_0_(2, p, b, c, i, j, k); }
198 inline float *
TCL::mxmad3(
const float *p,
const float *
q,
float *
c,
int i,
int j,
int k)
201 return mxmad_0_(3, p, q, c, i, j, k); }
204 inline float *
TCL::mxmpy(
const float *
a,
const float *b,
float *
c,
int i,
int j,
int k)
207 return mxmad_0_(4, a, b, c, i, j, k); }
210 inline float *
TCL::mxmpy1(
const float *
a,
const float *
q,
float *
c,
int i,
int j,
int k)
213 return mxmad_0_(5, a, q, c, i, j, k); }
216 inline float *
TCL::mxmpy2(
const float *p,
const float *b,
float *
c,
int i,
int j,
int k)
219 return mxmad_0_(6, p, b, c, i, j, k); }
222 inline float *
TCL::mxmpy3(
const float *p,
const float *
q,
float *
c,
int i,
int j,
int k)
225 return mxmad_0_(7, p, q, c, i, j, k); }
228 inline float *
TCL::mxmub(
const float *
a,
const float *b,
float *
c,
int i,
int j,
int k)
231 return mxmad_0_(8, a, b, c, i, j, k); }
234 inline float *
TCL::mxmub1(
const float *
a,
const float *
q,
float *
c,
int i,
int j,
int k)
237 return mxmad_0_(9, a, q, c, i, j, k); }
240 inline float *
TCL::mxmub2(
const float *p,
const float *b,
float *
c,
int i,
int j,
int k)
243 return mxmad_0_(10, p, b, c, i, j, k); }
246 inline float *
TCL::mxmub3(
const float *p,
const float *
q,
float *
c,
int i,
int j,
int k)
249 return mxmad_0_(11, p, q, c, i, j, k); }
252 inline float *
TCL::mxmlrt(
const float *
a,
const float *b,
float *
x,
int ni,
int nj)
258 inline float *
TCL::mxmltr(
const float *
a,
const float *b,
float *
x,
int ni,
int nj)
267 inline double *
TCL::mxmad(
const double *
a,
const double *b,
double *
c,
int i,
int j,
int k)
270 return mxmad_0_(0, a, b, c, i, j, k); }
273 inline double *
TCL:: mxmad1(
const double *
a,
const double *b,
double *
c,
int i,
int j,
int k)
276 return mxmad_0_(1, a, b, c, i, j, k); }
279 inline double *
TCL::mxmad2(
const double *
a,
const double *b,
double *
c,
int i,
int j,
int k)
282 return mxmad_0_(2, a, b, c, i, j, k); }
285 inline double *
TCL::mxmad3(
const double *
a,
const double *b,
double *
c,
int i,
int j,
int k)
288 return mxmad_0_(3, a, b, c, i, j, k); }
291 inline double *
TCL::mxmpy(
const double *
a,
const double *b,
double *
c,
int i,
int j,
int k)
294 return mxmad_0_(4, a, b, c, i, j, k); }
297 inline double *
TCL::mxmpy1(
const double *
a,
const double *b,
double *
c,
int i,
int j,
int k)
300 return mxmad_0_(5, a, b, c, i, j, k); }
303 inline double *
TCL::mxmpy2(
const double *
a,
const double *b,
double *
c,
int i,
int j,
int k)
306 return mxmad_0_(6, a, b, c, i, j, k); }
309 inline double *
TCL::mxmpy3(
const double *
a,
const double *b,
double *
c,
int i,
int j,
int k)
312 return mxmad_0_(7, a, b, c, i, j, k); }
315 inline double *
TCL::mxmub(
const double *
a,
const double *b,
double *
c,
int i,
int j,
int k)
318 return mxmad_0_(8, a, b, c, i, j, k); }
321 inline double *
TCL::mxmub1(
const double *
a,
const double *b,
double *
c,
int i,
int j,
int k)
324 return mxmad_0_(9, a, b, c, i, j, k); }
327 inline double *
TCL::mxmub2(
const double *
a,
const double *b,
double *
c,
int i,
int j,
int k)
330 return mxmad_0_(10, a, b, c, i, j, k); }
333 inline double *
TCL::mxmub3(
const double *
a,
const double *b,
double *
c,
int i,
int j,
int k)
336 return mxmad_0_(11, a, b, c, i, j, k); }
339 inline double *
TCL::mxmlrt(
const double *
a,
const double *b,
double *
c,
int ni,
int nj)
345 inline double *
TCL::mxmltr(
const double *
a,
const double *b,
double *
c,
int ni,
int nj)
356 if (n <= 0)
return 0;
357 memcpy(a,b,n*
sizeof(
int));
365 if (n <= 0)
return 0;
366 memcpy(a,b,n*
sizeof(
float));
374 if (n <= 0)
return 0;
375 for (
int i=0;i<
n;i++,a++,b++) *a =
float(*b);
383 if (n <= 0)
return 0;
384 for (
int i=0;i<
n;i++,a++,b++) *a =
double(*b);
392 if (n <= 0)
return 0;
393 memcpy(a,b,n*
sizeof(
double));
401 if (n <= 0)
return 0;
402 memcpy(a,b,n*
sizeof(
void *));
408 inline float *
TCL::vadd(
const float *b,
const float *
c,
float *
a,
int n)
411 if (n <= 0)
return 0;
412 for (
int i=0;i<
n;i++) a[i] = b[i] + c[i];
417 inline double *
TCL::vadd(
const double *b,
const double *
c,
double *
a,
int n)
420 if (n <= 0)
return 0;
421 for (
int i=0;i<
n;i++) a[i] = b[i] + c[i];
426 inline float *
TCL::vadd(
const float *b,
const double *
c,
float *
a,
int n)
429 if (n <= 0)
return 0;
430 for (
int i=0;i<
n;i++) a[i] = b[i] + c[i];
435 inline double *
TCL::vadd(
const double *b,
const float *
c,
double *
a,
int n)
438 if (n <= 0)
return 0;
439 for (
int i=0;i<
n;i++) a[i] = b[i] + c[i];
449 for (
int i=0;i<
n;i++,a++,b++) x += (*a) * (*b);
458 for (
int i=0;i<
n;i++,a++,b++) x += (*a) * (*b);
462 inline float *
TCL::vsub(
const float *
a,
const float *b,
float *
x,
int n)
465 if (n <= 0)
return 0;
466 for (
int i=0;i<
n;i++) x[i] = a[i]-b[i];
471 inline double *
TCL::vsub(
const double *
a,
const double *b,
double *
x,
int n)
474 if (n <= 0)
return 0;
475 for (
int i=0;i<
n;i++) x[i] = a[i]-b[i];
479 inline float *
TCL::vsub(
const float *b,
const double *
c,
float *
a,
int n)
482 if (n <= 0)
return 0;
483 for (
int i=0;i<
n;i++) a[i] = b[i] - c[i];
488 inline double *
TCL::vsub(
const double *b,
const float *
c,
double *
a,
int n)
491 if (n <= 0)
return 0;
492 for (
int i=0;i<
n;i++) a[i] = b[i] - c[i];
499 if (n <= 0)
return 0;
500 for (
int i=0;i<
n;i++) x[i] = -a[i];
507 if (n <= 0)
return 0;
508 for (
int i=0;i<
n;i++) x[i] = -a[i];
516 if (n1 <= 0)
return 0;
517 return (
float *)memset(a,0,n1*
sizeof(
float));
524 if (n1 <= 0)
return 0;
525 return (
double *)memset(a,0,n1*
sizeof(
double));
532 if (n1 <= 0)
return 0;
533 return (
void **)memset(a,0,n1*
sizeof(
void *));
540 for (
int i=0;i<
n;i++) b[i]=scale*a[i];
548 for (
int i=0;i<
n;i++) b[i]=scale*a[i];
553 inline float *
TCL::vlinco(
const float *
a,
float fa,
const float *b,
float fb,
float *
x,
int n)
556 for (
int i=0;i<
n;i++){x[i]=a[i]*fa+b[i]*fb;};
561 inline double *
TCL::vlinco(
const double *
a,
double fa,
const double *b,
double fb,
double *
x,
int n)
564 for (
int i=0;i<
n;i++) x[i]=a[i]*fa+b[i]*fb;
572 for (
int i=0; i<
n; i++) {
574 for (
int j=0; j<
m; j++) sum += G[j + m*i]*c[j];
584 for (
int i=0; i<
n; i++) {
586 for (
int j=0; j<
m; j++) sum += G[j + m*i]*c[j];
596 for (
int j=0; j<
m; j++) {
598 for (
int i=0; i<
n; i++) sum += G[j + n*i]*c[i];
608 for (
int j=0; j<
m; j++) {
610 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 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 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).
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 float * trla(const float *u, const float *a, float *b, int m, int n)
trla.F – translated by f2c (version 19970219).