2020
2121/* eslint-disable max-lines */
2222
23+ import chebyshevSeries = require( '@stdlib/math/base/tools/chebyshev-series' ) ;
24+ import chebyshevSeriesf = require( '@stdlib/math/base/tools/chebyshev-seriesf' ) ;
2325import continuedFraction = require( '@stdlib/math/base/tools/continued-fraction' ) ;
2426import evalpoly = require( '@stdlib/math/base/tools/evalpoly' ) ;
2527import evalpolyf = require( '@stdlib/math/base/tools/evalpolyf' ) ;
@@ -36,6 +38,62 @@ import sumSeries = require( '@stdlib/math/base/tools/sum-series' );
3638* Interface describing the `tools` namespace.
3739*/
3840interface Namespace {
41+ /**
42+ * Evaluates a Chebyshev series using double-precision floating-point arithmetic.
43+ *
44+ * ## Notes
45+ *
46+ * - The implementation uses [Clenshaw's recurrence algorithm][clenshaw].
47+ * - The function evaluates Chebyshev polynomials at `x/2`.
48+ *
49+ * [clenshaw]: https://en.wikipedia.org/wiki/Clenshaw_algorithm
50+ *
51+ * @param x - value at which to evaluate the Chebyshev series (expected to be in `[-2, 2]`)
52+ * @param c - Chebyshev series coefficients ordered in descending degree
53+ * @returns evaluated Chebyshev series
54+ *
55+ * @example
56+ * var v = ns.chebyshevSeries( 1.0, [ 1.0, 0.5 ] ); // 1*T_0(1/2) + 0.5*T_1(1/2)
57+ * // returns 0.75
58+ *
59+ * @example
60+ * var evaluate = ns.chebyshevSeries.factory( [ 1.0, 0.5 ] ); // 1*T_0(1/2) + 0.5*T_1(1/2)
61+ *
62+ * var v = evaluate( 1.0 );
63+ * // returns 0.75
64+ */
65+ chebyshevSeries : typeof chebyshevSeries ;
66+
67+ /**
68+ * Evaluates a Chebyshev series using single-precision floating-point arithmetic.
69+ *
70+ * ## Notes
71+ *
72+ * - The implementation uses [Clenshaw's recurrence algorithm][clenshaw].
73+ * - The function evaluates Chebyshev polynomials at `x/2`.
74+ *
75+ * [clenshaw]: https://en.wikipedia.org/wiki/Clenshaw_algorithm
76+ *
77+ * @param x - value at which to evaluate the Chebyshev series (expected to be in `[-2, 2]`)
78+ * @param c - Chebyshev series coefficients ordered in descending degree
79+ * @returns evaluated Chebyshev series
80+ *
81+ * @example
82+ * var Float32Array = require( '@stdlib/array/float32' );
83+ *
84+ * var v = ns.chebyshevSeriesf( 1.0, new Float32Array( [ 1.0, 0.5 ] ) ); // 1*T_0(1/2) + 0.5*T_1(1/2)
85+ * // returns 0.75
86+ *
87+ * @example
88+ * var Float32Array = require( '@stdlib/array/float32' );
89+ *
90+ * var evaluate = ns.chebyshevSeriesf.factory( new Float32Array( [ 1.0, 0.5 ] ) ); // 1*T_0(1/2) + 0.5*T_1(1/2)
91+ *
92+ * var v = evaluate( 1.0 );
93+ * // returns 0.75
94+ */
95+ chebyshevSeriesf : typeof chebyshevSeriesf ;
96+
3997 /**
4098 * Evaluates the continued fraction approximation for the supplied series generator using the modified Lentz algorithm.
4199 *
0 commit comments