#ifndef LIBA_POLY_H
#define LIBA_POLY_H
#include "a.h"
#if defined(__cplusplus)
extern "C" {
#endif
#if defined(LIBA_POLY_C)
#undef A_INTERN
#define A_INTERN A_INLINE
#endif
A_EXTERN a_float *a_poly_swap(a_float *a, a_size n);
#if !defined A_HAVE_INLINE || defined(LIBA_POLY_C)
A_EXTERN a_float a_poly_eval(a_float const *a, a_size n, a_float x);
#endif
A_EXTERN a_float a_poly_eval_(a_float const *a, a_float const *b, a_float x);
#if defined(A_HAVE_INLINE) || defined(LIBA_POLY_C)
A_INTERN a_float a_poly_eval(a_float const *a, a_size n, a_float x)
{
return n ? a_poly_eval_(a, a + n, x) : 0;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_POLY_C)
A_EXTERN a_float a_poly_evar(a_float const *a, a_size n, a_float x);
#endif
A_EXTERN a_float a_poly_evar_(a_float const *a, a_float const *b, a_float x);
#if defined(A_HAVE_INLINE) || defined(LIBA_POLY_C)
A_INTERN a_float a_poly_evar(a_float const *a, a_size n, a_float x)
{
return n ? a_poly_evar_(a, a + n, x) : 0;
}
#endif
#if defined(LIBA_POLY_C)
#undef A_INTERN
#define A_INTERN static A_INLINE
#endif
#if defined(__cplusplus)
}
#endif
#endif