Go to the documentation of this file.
55 for (
i = 0;
i < count;
i++) {
56 for (j =
i; j < count; j++) {
57 double sum = covar[
i][j];
59 for (k = 0; k <=
i-1; k++)
72 for (
i = 0;
i < count;
i++) {
73 double sum = covar_y[
i + 1];
75 for (k = 0; k <=
i-1; k++)
81 for (j = count - 1; j >= min_order; j--) {
82 for (
i = j;
i >= 0;
i--) {
83 double sum = m->
coeff[0][
i];
85 for (k =
i + 1; k <= j; k++)
93 for (
i = 0;
i <= j;
i++) {
94 double sum = m->
coeff[j][
i] * covar[
i][
i] - 2 * covar_y[
i + 1];
96 for (k = 0; k <
i; k++)
97 sum += 2 * m->
coeff[j][k] * covar[k][
i];
void avpriv_solve_lls(LLSModel *m, double threshold, unsigned short min_order)
static double evaluate_lls(LLSModel *m, const double *param, int order)
Linear least squares model.
double ff_scalarproduct_double_c(const double *v1, const double *v2, size_t len)
Return the scalar product of two vectors of doubles.
double variance[MAX_VARS]
void ff_init_lls_x86(LLSModel *m)
void(* update_lls)(struct LLSModel *m, const double *var)
Take the outer-product of var[] with itself, and add to the covariance matrix.
void ff_init_lls_riscv(LLSModel *m)
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)
static void update_lls(LLSModel *m, const double *var)
av_cold void avpriv_init_lls(LLSModel *m, int indep_count)
double covariance[(((32+1)+(4) -1)&~((4) -1))][MAX_VARS_ALIGN]
double coeff[32][MAX_VARS]
static const int factor[16]