liba
0.1.15
An algorithm library based on C/C++
Toggle main menu visibility
Loading...
Searching...
No Matches
poly.h
Go to the documentation of this file.
1
5
6
#ifndef LIBA_POLY_H
7
#define LIBA_POLY_H
8
9
#include "
a.h
"
10
16
17
#if defined(__cplusplus)
18
extern
"C"
{
19
#endif
/* __cplusplus */
20
#if defined(LIBA_POLY_C)
22
#undef A_INTERN
23
#define A_INTERN A_INLINE
25
#endif
/* LIBA_POLY_C */
26
30
#if !defined A_HAVE_INLINE || defined(LIBA_POLY_C)
31
A_EXTERN
void
a_poly_swap
(
a_real
*a,
a_size
n);
32
#endif
/* A_HAVE_INLINE */
33
A_EXTERN
void
a_poly_swap_(
a_real
*a,
a_real
*b);
34
#if defined(A_HAVE_INLINE) || defined(LIBA_POLY_C)
35
A_INTERN
void
a_poly_swap
(
a_real
*a,
a_size
n)
36
{
37
if
(n > 1) { a_poly_swap_(a, a + n); }
38
}
39
#endif
/* A_HAVE_INLINE */
40
51
#if !defined A_HAVE_INLINE || defined(LIBA_POLY_C)
52
A_EXTERN
a_real
a_poly_eval
(
a_real
const
*a,
a_size
n,
a_real
x);
53
#endif
/* A_HAVE_INLINE */
54
A_EXTERN
a_real
a_poly_eval_(
a_real
const
*a,
a_real
const
*b,
a_real
x);
55
#if defined(A_HAVE_INLINE) || defined(LIBA_POLY_C)
56
A_INTERN
a_real
a_poly_eval
(
a_real
const
*a,
a_size
n,
a_real
x)
57
{
58
return
n ? a_poly_eval_(a, a + n, x) : 0;
59
}
60
#endif
/* A_HAVE_INLINE */
61
72
#if !defined A_HAVE_INLINE || defined(LIBA_POLY_C)
73
A_EXTERN
a_real
a_poly_evar
(
a_real
const
*a,
a_size
n,
a_real
x);
74
#endif
/* A_HAVE_INLINE */
75
A_EXTERN
a_real
a_poly_evar_(
a_real
const
*a,
a_real
const
*b,
a_real
x);
76
#if defined(A_HAVE_INLINE) || defined(LIBA_POLY_C)
77
A_INTERN
a_real
a_poly_evar
(
a_real
const
*a,
a_size
n,
a_real
x)
78
{
79
return
n ? a_poly_evar_(a, a + n, x) : 0;
80
}
81
#endif
/* A_HAVE_INLINE */
82
93
A_EXTERN
void
a_poly_xTx
(
a_uint
m,
a_real
const
*x,
a_uint
n,
a_real
*A);
94
106
A_EXTERN
void
a_poly_xTy
(
a_uint
m,
a_real
const
*x,
a_real
const
*y,
a_uint
n,
a_real
*b);
107
108
#if defined(LIBA_POLY_C)
110
#undef A_INTERN
111
#define A_INTERN static A_INLINE
113
#endif
/* LIBA_POLY_C */
114
#if defined(__cplusplus)
115
}
/* extern "C" */
116
#endif
/* __cplusplus */
117
119
120
#endif
/* a/poly.h */
a.h
algorithm library
a_poly_swap
void a_poly_swap(a_real *a, a_size n)
swap between and
a_poly_xTy
void a_poly_xTy(a_uint m, a_real const *x, a_real const *y, a_uint n, a_real *b)
compute the vector A^T * y for polynomial fitting.
a_poly_evar
a_real a_poly_evar(a_real const *a, a_size n, a_real x)
horner function for polynomial
a_poly_eval
a_real a_poly_eval(a_real const *a, a_size n, a_real x)
horner function for polynomial
a_poly_xTx
void a_poly_xTx(a_uint m, a_real const *x, a_uint n, a_real *A)
compute the matrix A^T * A for polynomial fitting.
a_real
double a_real
compiler built-in floating-point number type
Definition
a.h:1012
a_uint
unsigned int a_uint
unsigned integer type is guaranteed to be at least 16 bits
Definition
a.h:337
a_size
size_t a_size
unsigned integer type returned by the sizeof operator
Definition
a.h:823
poly.h
Generated by
1.17.0