36#ifndef __YTLIB_BSPLINE_H
37#define __YTLIB_BSPLINE_H
42 const double xl,
const double xr,
43 double * B,
int * index,
44 const int ndx,
const int degree,
double * work);
46 const int ndx,
const int degree,
double * work);
48void ytBSpline_K(
int m,
int k,
double * K,
double * work);
51 const int ndx,
const int degree,
double * BtB);
52void ytBSpline_syBtB2(
const double * B,
const int * index,
const int n,
53 const int ndx,
const int degree,
double * BtB);
55void ytBSpline_dsycopy20(
const double * X,
double * Y);
56void ytBSpline_syMBt(
const double * restrict A,
57 const double * restrict B,
const int* index,
58 const int n,
const int ndx,
const int degree,
62void ytBSpline_Mv(
int n,
int m,
const double * A,
const double * b,
double * c);
63void ytBSpline_Mv20(
int n,
const double * A,
const double * b,
double * c);
64void ytBSpline_Mv20_mask(
int n,
const double * A,
const double * b,
double * c,
const char * mask);
65void ytBSpline_Bx3(
const double * restrict B,
const int * index,
66 const double * x,
const int n,
double * restrict y);
67double ytBSpline_var_mask(
int n,
const double * T,
const double * g,
69double ytBSpline_gKgL(
int M,
const double * K,
const double * g);
70double ytBSpline_gKg20L(
const double * K,
const double * g);
72 int n,
int M,
int deg);
void ytBSpline_designMatrix(const double *x, const int n, const double xl, const double xr, double *B, int *index, const int ndx, const int degree, double *work)
Generates the design matrix for B-spline nonparametric regression.
Definition: ytBSpline.c:206
void ytBSpline_dxpy_mask(int n, double *x, const double *y, const char *mask)
Calculates a vector-vector addition x <- x + y with a mask vector.
Definition: ytBSpline.c:548
void ytBSpline_designMatrix2(const double *x, const int n, double *B, int *index, const int ndx, const int degree, double *work)
Generates the design matrix for B-spline nonparametric regression.
Definition: ytBSpline.c:87
void ytBSpline_Mv20(int n, const double *A, const double *b, double *c)
A b c (M,n) x (n,1) -> (M,1) M=20.
Definition: ytBSpline.c:587
void ytBSpline_K(int m, int k, double *K, double *work)
Calculates Dk' Dk where Dk is the k-th order difference matrix.
Definition: ytBSpline.c:347
void ytBSpline_syBtB(const double *B, const int *index, const int n, const int ndx, const int degree, double *BtB)
Calculates the symmetric matrix of the multiplication B' B using the index vector set by ytBSpline_de...
Definition: ytBSpline.c:414
void ytBSpline_dxmy_mask(int n, double *x, const double *y, const char *mask)
Calculates a vector-vector subtraction x <- x - y with a mask vector.
Definition: ytBSpline.c:562
double ytBSpline_gamma20(double x, double xl, double xr, double *gamma)
Calculates B-splines with its coefficients for a single value.
Definition: ytBSpline.c:814
double ytBSpline_det_K_plus(const double *K, const int m)
Calculates |K|+.
Definition: ytBSpline.c:376
void ytBSpline_printB(FILE *fp, const double *B, const int *index, int n, int ndx, int deg)
Prints the design matrix.
Definition: ytBSpline.c:788
void ytBSpline_dsycopy(const double *X, double *Y, int m)
Copies an upper symmetric matrix.
Definition: ytBSpline.c:462
void ytBSpline_Dk(const int m, const int k, double *D)
Generates k-th order difference matrix.
Definition: ytBSpline.c:317