4 # 1 "/usr/include/stdc-predef.h" 1 3 4
39 # 52 "/usr/include/stdc-predef.h" 3 4
45 # 1 "<command-line>" 2
53 # 1 "./include/amino/la.h" 1
101 # 1 "./include/amino/la_impl.h" 1
145 # 1 "./include/amino/def.h" 1
146 # 42 "./include/amino/def.h"
147 # 1 "./include/amino/mangle.h" 1
148 # 43 "./include/amino/def.h" 2
149 # 45 "./include/amino/la_impl.h" 2
161 (
size_t m,
size_t n,
162 const double *A,
size_t lda,
163 double *B,
size_t ldb );
174 AA_API double aa_la_d_ssd (
size_t n,
const double *x,
size_t incx,
const double *y,
size_t incy );
190 (
size_t n,
double u,
191 const double *v1,
size_t inc1,
192 const double *v2,
size_t inc2,
193 double *vu,
size_t incu );
199 (
size_t n,
double tf,
200 const double *x1,
size_t incx1,
201 const double *dx1,
size_t incdx1,
202 const double *x2,
size_t inc2,
203 const double *dx2,
size_t incdx2,
204 double *a2,
double *a3 );
208 (
size_t n,
double tf,
209 const double *x1,
size_t incx1,
210 const double *dx1,
size_t incdx1,
211 const double *a2,
const double *a3,
212 double *x,
size_t incx,
213 double *dx,
size_t incdx,
214 double *ddx,
size_t incddx );
218 (
size_t n,
double tf,
219 const double *x1,
size_t incx1,
220 const double *dx1,
size_t incdx1,
221 const double *ddx1,
size_t incddx1,
222 const double *x2,
size_t inc2,
223 const double *dx2,
size_t incdx2,
224 const double *ddx2,
size_t incddx2,
225 double *a3,
double *a4,
double *a5 );
229 (
size_t n,
double tf,
230 const double *x1,
size_t incx1,
231 const double *dx1,
size_t incdx1,
232 const double *ddx1,
size_t incddx1,
233 const double *a3,
const double *a4,
const double *a5,
234 double *x,
size_t incx,
235 double *dx,
size_t incdx,
236 double *ddx,
size_t incddx );
293 AA_API void aa_la_d_colcov (
size_t m,
size_t n,
const double *A,
size_t lda,
const double *x,
double *E,
size_t lde );
413 (
size_t n,
double *x,
size_t incx ) {
416 for(
size_t i = 1; i < n; i ++ ) {
417 if( x[i*incx] < xmin ) {
427 (
size_t m,
size_t n,
double *A,
size_t lda,
428 size_t *pi,
size_t *pj ) {
432 for(
size_t i = 0; i < m; i++) {
433 for(
size_t j = 0; j < n; j++) {
449 (
size_t n,
double *x,
size_t incx ) {
452 for(
size_t i = 1; i < n; i ++ ) {
453 if( x[i*incx] > xmax ) {
471 AA_API double aa_la_d_angle (
size_t n,
const double *x,
size_t incx,
const double *y,
size_t incy );
491 (
size_t m,
size_t n,
size_t p,
492 const double *A,
size_t lda,
493 const double *b,
size_t ldb,
494 double *x,
size_t ldx );
514 (
size_t m,
size_t n,
const double *A,
size_t lda,
515 double *U,
size_t ldu,
517 double *Vt,
size_t ldvt );
527 (
size_t n,
const double *x,
size_t incx );
538 (
size_t n,
double *x );
544 (
size_t n,
double *x )
559 (
size_t n,
const double u,
const double *x,
size_t incx );
571 (
size_t m,
size_t n,
const double *u,
const double *A,
size_t lda );
575 (
size_t n,
const double *A,
size_t lda,
578 double *Vl,
size_t ldvl,
579 double *Vr,
size_t ldvr );
599 int aa_la_d_compar(
const void *a,
const void *b );
608 (
const double *sigma,
const double *theta,
double *cm);
611 # 1 "./include/amino/undef.h" 1
612 # 506 "./include/amino/la_impl.h" 2
613 # 49 "./include/amino/la.h" 2
618 # 1 "./include/amino/la_impl.h" 1
662 # 1 "./include/amino/def.h" 1
663 # 45 "./include/amino/la_impl.h" 2
675 (
size_t m,
size_t n,
676 const float *A,
size_t lda,
677 float *B,
size_t ldb );
688 AA_API float aa_la_s_ssd (
size_t n,
const float *x,
size_t incx,
const float *y,
size_t incy );
705 const float *v1,
size_t inc1,
706 const float *v2,
size_t inc2,
707 float *vu,
size_t incu );
713 (
size_t n,
float tf,
714 const float *x1,
size_t incx1,
715 const float *dx1,
size_t incdx1,
716 const float *x2,
size_t inc2,
717 const float *dx2,
size_t incdx2,
718 float *a2,
float *a3 );
722 (
size_t n,
float tf,
723 const float *x1,
size_t incx1,
724 const float *dx1,
size_t incdx1,
725 const float *a2,
const float *a3,
726 float *x,
size_t incx,
727 float *dx,
size_t incdx,
728 float *ddx,
size_t incddx );
732 (
size_t n,
float tf,
733 const float *x1,
size_t incx1,
734 const float *dx1,
size_t incdx1,
735 const float *ddx1,
size_t incddx1,
736 const float *x2,
size_t inc2,
737 const float *dx2,
size_t incdx2,
738 const float *ddx2,
size_t incddx2,
739 float *a3,
float *a4,
float *a5 );
743 (
size_t n,
float tf,
744 const float *x1,
size_t incx1,
745 const float *dx1,
size_t incdx1,
746 const float *ddx1,
size_t incddx1,
747 const float *a3,
const float *a4,
const float *a5,
748 float *x,
size_t incx,
749 float *dx,
size_t incdx,
750 float *ddx,
size_t incddx );
807 AA_API void aa_la_s_colcov (
size_t m,
size_t n,
const float *A,
size_t lda,
const float *x,
float *E,
size_t lde );
927 (
size_t n,
float *x,
size_t incx ) {
930 for(
size_t i = 1; i < n; i ++ ) {
931 if( x[i*incx] < xmin ) {
941 (
size_t m,
size_t n,
float *A,
size_t lda,
942 size_t *pi,
size_t *pj ) {
946 for(
size_t i = 0; i < m; i++) {
947 for(
size_t j = 0; j < n; j++) {
963 (
size_t n,
float *x,
size_t incx ) {
966 for(
size_t i = 1; i < n; i ++ ) {
967 if( x[i*incx] > xmax ) {
985 AA_API float aa_la_s_angle (
size_t n,
const float *x,
size_t incx,
const float *y,
size_t incy );
1005 (
size_t m,
size_t n,
size_t p,
1006 const float *A,
size_t lda,
1007 const float *b,
size_t ldb,
1008 float *x,
size_t ldx );
1028 (
size_t m,
size_t n,
const float *A,
size_t lda,
1029 float *U,
size_t ldu,
1031 float *Vt,
size_t ldvt );
1041 (
size_t n,
const float *x,
size_t incx );
1052 (
size_t n,
float *x );
1058 (
size_t n,
float *x )
1073 (
size_t n,
const float u,
const float *x,
size_t incx );
1085 (
size_t m,
size_t n,
const float *u,
const float *A,
size_t lda );
1089 (
size_t n,
const float *A,
size_t lda,
1092 float *Vl,
size_t ldvl,
1093 float *Vr,
size_t ldvr );
1113 int aa_la_s_compar(
const void *a,
const void *b );
1122 (
const double *sigma,
const double *theta,
double *cm);
1125 # 1 "./include/amino/undef.h" 1
1126 # 506 "./include/amino/la_impl.h" 2
1127 # 54 "./include/amino/la.h" 2
1128 # 7 "doc/la_doc.c" 2
AA_API void aa_la_s_colcov(size_t m, size_t n, const float *A, size_t lda, const float *x, float *E, size_t lde)
Covariance of columns of A.
AA_API int aa_la_d_svd(size_t m, size_t n, const double *A, size_t lda, double *U, size_t ldu, double *S, double *Vt, size_t ldvt)
Singular Value Decomposition of A.
static float aa_la_s_mat_max(size_t m, size_t n, float *A, size_t lda, size_t *pi, size_t *pj)
Minimum location of vector x.
AA_API int aa_la_s_eev(size_t n, const float *A, size_t lda, float *wr, float *wi, float *Vl, size_t ldvl, float *Vr, size_t ldvr)
Compute eigen values and vectors.
AA_API float aa_la_s_vecstd(size_t n, const float *x, size_t incx, float mu)
Standard deviation of vector.
AA_API double aa_la_d_ssd(size_t n, const double *x, size_t incx, const double *y, size_t incy)
Sum-square differences of x and y.
AA_API float aa_la_s_median(size_t n, const float *x, size_t incx)
Cmpute median.
AA_API void aa_la_d_3spline(size_t n, double tf, const double *x1, size_t incx1, const double *dx1, size_t incdx1, const double *a2, const double *a3, double *x, size_t incx, double *dx, size_t incdx, double *ddx, size_t incddx)
Compute cubic spline value.
AA_API void aa_la_d_5spline(size_t n, double tf, const double *x1, size_t incx1, const double *dx1, size_t incdx1, const double *ddx1, size_t incddx1, const double *a3, const double *a4, const double *a5, double *x, size_t incx, double *dx, size_t incdx, double *ddx, size_t incddx)
Compute quintic spline value.
#define AA_MATREF(A, lda, row, col)
Reference an element in a column-major matrix.
AA_API int aa_la_s_lls(size_t m, size_t n, size_t p, const float *A, size_t lda, const float *b, size_t ldb, float *x, size_t ldx)
Linear Least Squares.
AA_API void aa_la_s_5spline_param(size_t n, float tf, const float *x1, size_t incx1, const float *dx1, size_t incdx1, const float *ddx1, size_t incddx1, const float *x2, size_t inc2, const float *dx2, size_t incdx2, const float *ddx2, size_t incddx2, float *a3, float *a4, float *a5)
Compute quintic spline parameters.
AA_API void aa_la_d_transpose(size_t m, size_t n, const double *A, size_t lda, double *B, size_t ldb)
type for operations
static size_t aa_la_d_maxloc(size_t n, double *x, size_t incx)
Maximum location of vector x.
AA_API void aa_la_d_assign_hungarian(size_t m, size_t n, const double *A, size_t lda, ssize_t *row_assign, ssize_t *col_assign)
Hungarian algorithm to solve min assignment problem.
AA_API float aa_la_s_ssd(size_t n, const float *x, size_t incx, const float *y, size_t incy)
Sum-square differences of x and y.
AA_API void aa_la_s_3spline_param(size_t n, float tf, const float *x1, size_t incx1, const float *dx1, size_t incdx1, const float *x2, size_t inc2, const float *dx2, size_t incdx2, float *a2, float *a3)
Compute cubic spline parameters.
AA_API int aa_la_d_eev(size_t n, const double *A, size_t lda, double *wr, double *wi, double *Vl, size_t ldvl, double *Vr, size_t ldvr)
Compute eigen values and vectors.
AA_API void aa_la_d_colfit(size_t m, size_t n, const double *A, size_t lda, double *x)
Fit a least-squares hyperplane to columns of A.
AA_API float aa_la_s_nmedian(size_t n, float *x)
Destructive median computation.
double aa_la_d_mad(size_t n, const double u, const double *x, size_t incx)
Median Absolute Deviation.
float aa_la_s_mad(size_t n, const float u, const float *x, size_t incx)
Median Absolute Deviation.
AA_API void aa_mem_region_local_pop(void *ptr)
Pop ptr from thread-local memory region.
AA_API void aa_la_s_colmean(size_t m, size_t n, const float *A, size_t lda, float *x)
Mean of columns of A.
static size_t aa_la_s_maxloc(size_t n, float *x, size_t incx)
Maximum location of vector x.
AA_API void aa_la_s_assign_hungarian(size_t m, size_t n, const float *A, size_t lda, ssize_t *row_assign, ssize_t *col_assign)
Hungarian algorithm to solve min assignment problem.
AA_API int aa_la_s_svd(size_t m, size_t n, const float *A, size_t lda, float *U, size_t ldu, float *S, float *Vt, size_t ldvt)
Singular Value Decomposition of A.
AA_API void aa_la_d_lerp(size_t n, double u, const double *v1, size_t inc1, const double *v2, size_t inc2, double *vu, size_t incu)
Linear interpolation of vectors.
AA_API float aa_la_s_angle(size_t n, const float *x, size_t incx, const float *y, size_t incy)
Angle between vectors.
AA_API void aa_la_s_rowmean(size_t m, size_t n, const float *A, size_t lda, float *x)
Mean of rows of A.
int aa_la_d_ls_duqu_cmat(const double *sigma, const double *theta, double *cm)
Create a companion matrix for the lambda polynomial in se3 least-squares.
AA_API void aa_la_d_3spline_param(size_t n, double tf, const double *x1, size_t incx1, const double *dx1, size_t incdx1, const double *x2, size_t inc2, const double *dx2, size_t incdx2, double *a2, double *a3)
Compute cubic spline parameters.
AA_API void aa_la_s_assign_hungarian_max2min(size_t m, size_t n, float *A, size_t lda)
Converts max assignment to min assignment for Hungarian algorithm.
AA_API void aa_la_d_colcov(size_t m, size_t n, const double *A, size_t lda, const double *x, double *E, size_t lde)
Covariance of columns of A.
AA_API double aa_la_d_angle(size_t n, const double *x, size_t incx, const double *y, size_t incy)
Angle between vectors.
AA_API int aa_la_d_lls(size_t m, size_t n, size_t p, const double *A, size_t lda, const double *b, size_t ldb, double *x, size_t ldx)
Linear Least Squares.
AA_API void aa_la_d_assign_hungarian_max2min(size_t m, size_t n, double *A, size_t lda)
Converts max assignment to min assignment for Hungarian algorithm.
#define AA_API
calling and name mangling convention for functions
static double aa_la_d_mat_max(size_t m, size_t n, double *A, size_t lda, size_t *pi, size_t *pj)
Minimum location of vector x.
static float aa_la_s_nmedian_pop(size_t n, float *x)
Compute median and pop array from local memory region.
static double aa_la_d_nmedian_pop(size_t n, double *x)
Compute median and pop array from local memory region.
AA_API void aa_la_d_5spline_param(size_t n, double tf, const double *x1, size_t incx1, const double *dx1, size_t incdx1, const double *ddx1, size_t incddx1, const double *x2, size_t inc2, const double *dx2, size_t incdx2, const double *ddx2, size_t incddx2, double *a3, double *a4, double *a5)
Compute quintic spline parameters.
AA_API void aa_la_s_lerp(size_t n, float u, const float *v1, size_t inc1, const float *v2, size_t inc2, float *vu, size_t incu)
Linear interpolation of vectors.
AA_API double aa_la_d_vecstd(size_t n, const double *x, size_t incx, double mu)
Standard deviation of vector.
AA_API void aa_la_s_5spline(size_t n, float tf, const float *x1, size_t incx1, const float *dx1, size_t incdx1, const float *ddx1, size_t incddx1, const float *a3, const float *a4, const float *a5, float *x, size_t incx, float *dx, size_t incdx, float *ddx, size_t incddx)
Compute quintic spline value.
AA_API double aa_la_d_nmedian(size_t n, double *x)
Destructive median computation.
static size_t aa_la_d_minloc(size_t n, double *x, size_t incx)
Minimum location of vector x.
static size_t aa_la_s_minloc(size_t n, float *x, size_t incx)
Minimum location of vector x.
AA_API void aa_la_d_rowmean(size_t m, size_t n, const double *A, size_t lda, double *x)
Mean of rows of A.
AA_API double aa_la_d_median(size_t n, const double *x, size_t incx)
Cmpute median.
AA_API void aa_la_s_transpose(size_t m, size_t n, const float *A, size_t lda, float *B, size_t ldb)
type for operations
AA_API void aa_la_s_colfit(size_t m, size_t n, const float *A, size_t lda, float *x)
Fit a least-squares hyperplane to columns of A.
int aa_la_s_ls_duqu_cmat(const double *sigma, const double *theta, double *cm)
Create a companion matrix for the lambda polynomial in se3 least-squares.
AA_API void aa_la_s_3spline(size_t n, float tf, const float *x1, size_t incx1, const float *dx1, size_t incdx1, const float *a2, const float *a3, float *x, size_t incx, float *dx, size_t incdx, float *ddx, size_t incddx)
Compute cubic spline value.
AA_API void aa_la_d_colmean(size_t m, size_t n, const double *A, size_t lda, double *x)
Mean of columns of A.
float aa_la_s_mad2(size_t m, size_t n, const float *u, const float *A, size_t lda)
Median Absolute Deviation with Euclidean distance.
double aa_la_d_mad2(size_t m, size_t n, const double *u, const double *A, size_t lda)
Median Absolute Deviation with Euclidean distance.