Go to the documentation of this file.
23 #define randomize_buffer(buf) \
25 double bmg[2], stddev = 10.0; \
27 for (size_t i = 0; i < MAX_VARS_ALIGN; i += 2) { \
28 av_bmg_get(&checkasm_lfg, bmg); \
29 buf[i] = bmg[0] * stddev; \
30 buf[i + 1] = bmg[1] * stddev; \
42 for (
size_t j = 0; j <
MAX_VARS; j++)
50 double eps =
FFMAX(2 * DBL_EPSILON *
fabs(refcovar[
i][j]),
54 fprintf(stderr,
"%zu, %zu: %- .12f - %- .12f = % .12g\n",
i, j,
66 double refprod, newprod, eps;
69 refprod =
call_ref(lls, param, order);
70 newprod =
call_new(lls, param, order);
72 eps =
FFMAX(2 * DBL_EPSILON *
fabs(refprod), 0.2);
75 fprintf(stderr,
"%- .12f - %- .12f = % .12g\n",
76 refprod, newprod, refprod - newprod);
86 static const unsigned char counts[] = { 8, 12,
MAX_VARS, };
99 for (
size_t j = 0; j <=
i; j++)
Linear least squares model.
static void test_update(LLSModel *lls, const double *var)
#define check_func(func,...)
#define declare_func_float(ret,...)
int double_near_abs_eps(double a, double b, double eps)
#define FF_ARRAY_ELEMS(a)
void checkasm_check_lls(void)
static __device__ float fabs(float a)
#define LOCAL_ALIGNED_32(t, v,...)
void(* update_lls)(struct LLSModel *m, const double *var)
Take the outer-product of var[] with itself, and add to the covariance matrix.
double(* evaluate_lls)(struct LLSModel *m, const double *var, int order)
Inner product of var[] and the LPC coefs.
#define i(width, name, range_min, range_max)
#define randomize_buffer(buf)
av_cold void avpriv_init_lls(LLSModel *m, int indep_count)
double covariance[(((32+1)+(4) -1)&~((4) -1))][MAX_VARS_ALIGN]
static void test_evaluate(LLSModel *lls, const double *param, int order)
#define declare_func(ret,...)