UNPKG

@stdlib/math-base-special-gammaincinv

Version:

Inverse incomplete gamma function.

80 lines (69 loc) 1.53 kB
/** * @license Apache-2.0 * * Copyright (c) 2018 The Stdlib Authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ 'use strict'; // VARIABLES // // Chebyshev polynomial coefficients... var A = [ 1.996379051590076518221, -0.17971032528832887213e-2, 0.131292857963846713e-4, -0.2340875228178749e-6, 0.72291210671127e-8, -0.3280997607821e-9, 0.198750709010e-10, -0.15092141830e-11, 0.1375340084e-12, -0.145728923e-13, 0.17532367e-14, -0.2351465e-15, 0.346551e-16, -0.55471e-17, 0.9548e-18, -0.1748e-18, 0.332e-19, -0.58e-20 ]; // MAIN // /** * Computes the sum of a Chebyshev polynomial. * * @private * @param {PositiveInteger} n - degree of polynomial * @param {number} t - input value * @returns {number} Chebyshev sum */ function chepolsum( n, t ) { var tt; var u0; var u1; var u2; var k; u0 = 0.0; u1 = 0.0; tt = t + t; k = n; do { u2 = u1; u1 = u0; u0 = ( tt*u1 ) - u2 + A[ k ]; k -= 1; } while ( k >= 0 ); return ( u0-u2 ) / 2.0; } // EXPORTS // module.exports = chepolsum;