INGOR
Loading...
Searching...
No Matches
ytBSpline.h
1/*
2 math/ytBSpline.{h,c} : B-spline routines.
3 Copyright (C) 2018, Yoshinori Tamada <tamada A T ytlab.jp>
4 All rights reserved.
5
6 See LICENSE.txt for details of the licensing agreement.
7*/
8
9#ifndef __YTLIB_BSPLINE_H
10#define __YTLIB_BSPLINE_H
11
12#include <stdio.h>
13
14void ytBSpline_designMatrix(const double * x, const int n,
15 const double xl, const double xr,
16 double * B, int * index,
17 const int ndx, const int degree, double * work);
18void ytBSpline_designMatrix2(const double * x, const int n, double * B, int * index,
19 const int ndx, const int degree, double * work);
20void ytBSpline_Dk(const int m, const int k, double * D);
21void ytBSpline_K(int m, int k, double * K, double * work);
22double ytBSpline_det_K_plus(const double * K, const int m);
23void ytBSpline_syBtB(const double * B, const int * index, const int n,
24 const int ndx, const int degree, double * BtB);
25void ytBSpline_syBtB2(const double * B, const int * index, const int n,
26 const int ndx, const int degree, double * BtB);
27void ytBSpline_dsycopy(const double * X, double * Y, int m);
28void ytBSpline_dsycopy20(const double * X, double * Y);
29void ytBSpline_syMBt(const double * restrict A,
30 const double * restrict B, const int* index,
31 const int n, const int ndx, const int degree,
32 double * restrict C);
33void ytBSpline_syMBt_D3(const double * restrict A,
34 const double * restrict B, const int * index,
35 const int n, const int ndx,
36 double * restrict C);
37void ytBSpline_syMBt_D3_2(const double * restrict A,
38 const double * restrict B, const int * index,
39 const int n, const int ndx,
40 double * restrict C);
41void ytBSpline_syMBt_D3_3(double * restrict A,
42 double * restrict B, const int * index,
43 const int n, const int ndx,
44 double * restrict C);
45void ytBSpline_dxpy_mask(int n, double * x, const double * y, const char * mask);
46void ytBSpline_dxmy_mask(int n, double * x, const double * y, const char * mask);
47void ytBSpline_Mv(int n, int m, const double * A, const double * b, double * c);
48void ytBSpline_Mv20(int n, const double * A, const double * b, double * c);
49void ytBSpline_Mv20_mask(int n, const double * A, const double * b, double * c, const char * mask);
50void ytBSpline_Bx3(const double * restrict B, const int * index,
51 const double * x, const int n, double * restrict y);
52void ytBSpline_BM3(const double * restrict B, const int * index,
53 const double * X, const int n, const int ndx, const int L,
54 double * restrict Y);
55double ytBSpline_var_mask(int n, const double * T, const double * g,
56 const char * mask);
57double ytBSpline_gKgL(int M, const double * K, const double * g);
58double ytBSpline_gKg20L(const double * K, const double * g);
59void ytBSpline_printB(FILE * fp, const double * B, const int * index,
60 int n, int M, int deg);
61double ytBSpline_gamma20(double x, double xl, double xr, double * gamma);
62#endif /* __YTLIB_BSPLINE_H */