static void test_meancov() { double A[] = {1.,2., 3.,3., 8.,12.}; // 2x3 double e[4], mu[2], At[6]; double mu_r[2] = {4, 5.6666667}; double e_r[] = {13.,19.5, 19.5,30.333333}; aa_la_d_colmean( 2, 3, A, 2, mu); aveq( "colmean", 2, mu, mu_r, 1e-6); aa_la_d_transpose(2,3,A,2, At,3); printf("\n"); aa_dump_mat( stdout, A, 2,3); printf("\n"); aa_dump_mat( stdout, At, 3,2); printf("\n"); aa_la_d_rowmean( 3, 2, At, 3, mu); aveq( "rowmean", 2, mu, mu_r, 1e-6); aa_la_d_colcov( 2, 3, A, 2, mu, e, 2); aveq( "colcov", 4, e, e_r, 1e-6); }
void aa_stat_vmean_cov( size_t m, size_t n, const double *X, double *mu, double *E) { aa_stat_vmean(m,n,X,mu); aa_la_d_colcov( m, n, X, m, mu, E, m ); }