44 #include "amino/def.h"
55 AA_API void AA_NAME(la,transpose)
57 const AA_TYPE *A,
size_t lda,
58 AA_TYPE *B,
size_t ldb );
69 AA_FDEC(AA_TYPE, la, ssd,
71 const AA_TYPE *x,
size_t incx,
72 const AA_TYPE *y,
size_t incy )
84 AA_API void AA_NAME(la,lerp)
85 (
size_t n, AA_TYPE u,
86 const AA_TYPE *v1,
size_t inc1,
87 const AA_TYPE *v2,
size_t inc2,
88 AA_TYPE *vu,
size_t incu );
93 AA_API void AA_NAME(la,3spline_param)
94 (
size_t n, AA_TYPE tf,
95 const AA_TYPE *x1,
size_t incx1,
96 const AA_TYPE *dx1,
size_t incdx1,
97 const AA_TYPE *x2,
size_t inc2,
98 const AA_TYPE *dx2,
size_t incdx2,
99 AA_TYPE *a2, AA_TYPE *a3 );
102 AA_API void AA_NAME(la,3spline)
103 (
size_t n, AA_TYPE tf,
104 const AA_TYPE *x1,
size_t incx1,
105 const AA_TYPE *dx1,
size_t incdx1,
106 const AA_TYPE *a2,
const AA_TYPE *a3,
107 AA_TYPE *x,
size_t incx,
108 AA_TYPE *dx,
size_t incdx,
109 AA_TYPE *ddx,
size_t incddx );
112 AA_API void AA_NAME(la,5spline_param)
113 (
size_t n, AA_TYPE tf,
114 const AA_TYPE *x1,
size_t incx1,
115 const AA_TYPE *dx1,
size_t incdx1,
116 const AA_TYPE *ddx1,
size_t incddx1,
117 const AA_TYPE *x2,
size_t inc2,
118 const AA_TYPE *dx2,
size_t incdx2,
119 const AA_TYPE *ddx2,
size_t incddx2,
120 AA_TYPE *a3, AA_TYPE *a4, AA_TYPE *a5 );
123 AA_API void AA_NAME(la,5spline)
124 (
size_t n, AA_TYPE tf,
125 const AA_TYPE *x1,
size_t incx1,
126 const AA_TYPE *dx1,
size_t incdx1,
127 const AA_TYPE *ddx1,
size_t incddx1,
128 const AA_TYPE *a3,
const AA_TYPE *a4,
const AA_TYPE *a5,
129 AA_TYPE *x,
size_t incx,
130 AA_TYPE *dx,
size_t incdx,
131 AA_TYPE *ddx,
size_t incddx );
139 AA_FDEC(AA_TYPE, la, vecstd,
141 const AA_TYPE *x,
size_t incx,
153 AA_FDEC(
void, la, colmean,
155 const AA_TYPE *A,
size_t lda,
167 AA_FDEC(
void, la, rowmean,
169 const AA_TYPE *A,
size_t lda,
188 AA_FDEC(
void, la, colcov,
190 const AA_TYPE *A,
size_t lda,
192 AA_TYPE *E,
size_t lde);
288 AA_FDEC(
void, la, assign_hungarian,
290 const AA_TYPE *A,
size_t lda,
291 ssize_t *row_assign, ssize_t *col_assign );
301 AA_FDEC(
void, la, assign_hungarian_max2min,
303 AA_TYPE *A,
size_t lda );
307 static inline size_t AA_NAME(la,minloc)
308 (
size_t n, AA_TYPE *x,
size_t incx ) {
311 for(
size_t i = 1; i < n; i ++ ) {
312 if( x[i*incx] < xmin ) {
321 static inline AA_TYPE AA_NAME(la,mat_max)
322 (
size_t m,
size_t n, AA_TYPE *A,
size_t lda,
323 size_t *pi,
size_t *pj ) {
327 for(
size_t i = 0; i < m; i++) {
328 for(
size_t j = 0; j < n; j++) {
343 static inline size_t AA_NAME(la,maxloc)
344 (
size_t n, AA_TYPE *x,
size_t incx ) {
347 for(
size_t i = 1; i < n; i ++ ) {
348 if( x[i*incx] > xmax ) {
366 AA_FDEC(AA_TYPE, la, angle,
367 size_t n,
const AA_TYPE *x,
size_t incx,
368 const AA_TYPE *y,
size_t incy)
385 AA_API int AA_NAME(la,lls)
386 (
size_t m,
size_t n,
size_t p,
387 const AA_TYPE *A,
size_t lda,
388 const AA_TYPE *b,
size_t ldb,
389 AA_TYPE *x,
size_t ldx );
408 AA_API int AA_NAME(la,svd)
409 (
size_t m,
size_t n,
const AA_TYPE *A,
size_t lda,
410 AA_TYPE *U,
size_t ldu,
412 AA_TYPE *Vt,
size_t ldvt );
421 AA_API AA_TYPE AA_NAME(la,median)
422 (
size_t n,
const AA_TYPE *x,
size_t incx );
432 AA_API AA_TYPE AA_NAME(la,nmedian)
433 (
size_t n, AA_TYPE *x );
438 static inline AA_TYPE AA_NAME(la,nmedian_pop)
439 (
size_t n, AA_TYPE *x )
441 AA_TYPE u = AA_NAME(la,nmedian)(n, x);
453 AA_TYPE AA_NAME(la,mad)
454 (
size_t n,
const AA_TYPE u,
const AA_TYPE *x,
size_t incx );
465 AA_TYPE AA_NAME(la,mad2)
466 (
size_t m,
size_t n,
const AA_TYPE *u,
const AA_TYPE *A,
size_t lda );
469 AA_API int AA_NAME(la,eev)
470 (
size_t n,
const AA_TYPE *A,
size_t lda,
473 AA_TYPE *Vl,
size_t ldvl,
474 AA_TYPE *Vr,
size_t ldvr );
488 AA_FDEC(
void, la, colfit,
490 const AA_TYPE *A,
size_t lda, AA_TYPE *x );
494 int AA_NAME(la,compar)(
const void *a,
const void *b );
502 int AA_NAME(la, ls_duqu_cmat)
503 (
const double *sigma,
const double *theta,
double *cm);
506 #include "amino/undef.h"
#define AA_MATREF(A, lda, row, col)
Reference an element in a column-major matrix.
AA_API void aa_mem_region_local_pop(void *ptr)
Pop ptr from thread-local memory region.
#define AA_API
calling and name mangling convention for functions