diff --git a/lib/node_modules/@stdlib/math/base/special/hyp2f1/lib/hyp2f1negcequalbc.js b/lib/node_modules/@stdlib/math/base/special/hyp2f1/lib/hyp2f1negcequalbc.js new file mode 100644 index 000000000000..0e1461365d77 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/hyp2f1/lib/hyp2f1negcequalbc.js @@ -0,0 +1,78 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 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. +* +* +* ## Notice +* +* The original C code and copyright notice are from the [Cephes Mathematical Library]{@link https://www.netlib.org/cephes/}. The implementation has been modified for JavaScript. +* +* ```text +* (C) Copyright Stephen L. Moshier 1984, 1987, 1992, 2000. +* +* Use, modification and distribution are subject to the +* Cephes Mathematical Library License. (See accompanying file +* LICENSE or copy at https://smath.com/en-US/view/CephesMathLibrary/license) +* ``` +*/ + +'use strict'; + +// MODULES // + +var abs = require( '@stdlib/math/base/special/abs' ); +var max = require( '@stdlib/math/base/special/max' ); + + +// MAIN // + +/** +* Evaluates 2F1(a, b; b; x) when `b = c` is a negative integer using AMS55 #15.4.2. +* +* @private +* @param {number} a - first parameter +* @param {number} b - second parameter (equals c, a non-positive integer) +* @param {number} x - argument +* @returns {number} function value, or NaN if precision is insufficient +*/ +function hyp2f1NegCEqualBC( a, b, x ) { + var collectorMax; + var collector; + var sum; + var k; + + collectorMax = 1.0; + collector = 1.0; + sum = 1.0; + + if ( abs( b ) >= 1.0e5 ) { + return NaN; + } + for ( k = 1; k <= -b; k++ ) { + collector *= ( ( a + k - 1.0 ) * x ) / k; + collectorMax = max( abs( collector ), collectorMax ); + sum += collector; + } + if ( 1.0e-16 * ( 1.0 + ( collectorMax / abs( sum ) ) ) > 1.0e-7 ) { + return NaN; + } + return sum; +} + + +// EXPORTS // + +module.exports = hyp2f1NegCEqualBC; diff --git a/lib/node_modules/@stdlib/math/base/special/hyp2f1/lib/hyt2f1.js b/lib/node_modules/@stdlib/math/base/special/hyp2f1/lib/hyt2f1.js index 99ebf12a4314..046a505c05c5 100644 --- a/lib/node_modules/@stdlib/math/base/special/hyp2f1/lib/hyt2f1.js +++ b/lib/node_modules/@stdlib/math/base/special/hyp2f1/lib/hyt2f1.js @@ -122,7 +122,7 @@ function hyt2f1( a, b, c, x, loss ) { d = c - a - b; id = round( d ); - if ( x > 0.9 && !negIntA && !negIntB ) { + if ( x > 0.85 && !negIntA && !negIntB ) { if ( isInteger( d ) === false ) { // Try the power series first: y = hys2f1( a, b, c, x, err ); @@ -223,7 +223,11 @@ function hyt2f1( a, b, c, x, loss ) { y = -y; } q = pow( s, id ); - y = ( id > 0.0 ) ? y*q : y1*q; + if ( id > 0.0 ) { + y *= q; + } else { + y1 *= q; + } y += y1; } return { diff --git a/lib/node_modules/@stdlib/math/base/special/hyp2f1/lib/main.js b/lib/node_modules/@stdlib/math/base/special/hyp2f1/lib/main.js index 031ea18c7eeb..53fd4ef8fce6 100644 --- a/lib/node_modules/@stdlib/math/base/special/hyp2f1/lib/main.js +++ b/lib/node_modules/@stdlib/math/base/special/hyp2f1/lib/main.js @@ -40,6 +40,7 @@ var gamma = require( '@stdlib/math/base/special/gamma' ); var pow = require( '@stdlib/math/base/special/pow' ); var abs = require( '@stdlib/math/base/special/abs' ); var isNonPositiveInteger = require( './isnonpositiveinteger.js' ); +var hyp2f1NegCEqualBC = require( './hyp2f1negcequalbc.js' ); var isInteger = require( './isinteger.js' ); var hys2f1 = require( './hys2f1.js' ); var hyt2f1 = require( './hyt2f1.js' ); @@ -156,6 +157,10 @@ function hyp2f1( a, b, c, x ) { if ( ax < 1.0 || x === -1.0 ) { if ( b === c ) { // 2F1(a,b;b;x) = (1-x)**(-a): + if ( negIntB ) { + // For negative integer b=c use the finite polynomial (AMS55 #15.4.2): + return hyp2f1NegCEqualBC( a, b, x ); + } return pow( s, -a ); } if ( a === c ) { diff --git a/lib/node_modules/@stdlib/math/base/special/hyp2f1/test/fixtures/python/edge_cases3.json b/lib/node_modules/@stdlib/math/base/special/hyp2f1/test/fixtures/python/edge_cases3.json index 34e12556d3f4..2929044cee21 100644 --- a/lib/node_modules/@stdlib/math/base/special/hyp2f1/test/fixtures/python/edge_cases3.json +++ b/lib/node_modules/@stdlib/math/base/special/hyp2f1/test/fixtures/python/edge_cases3.json @@ -1 +1 @@ -{"a": [-10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0], "b": [-2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4], "c": [-9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4], "x": [-10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -1.01, -0.99, 0.0, 0.6], "expected": ["PINF", "PINF", "PINF", 1.0, "PINF", "PINF", -24079735066.182957, -2291.84346396414, -2091.731497205369, 1.0, 155.2070332942432, 512.1143805238588, -47505.76832932691, 0.4313060843999952, 0.38304679551306287, 1.0, 6.242858629282901, 11.664819014650925, -23.41460389781427, 0.13189547101833973, 0.14239991446593636, 1.0, 1.8793133090075513, 2.532144159645901, 12.11111111111111, 2.1222222222222222, 2.1, 1.0, 0.33333333333333337, -0.05555555555555558, 56.55555555555556, 6.611111111111111, 6.5, 1.0, -2.333333333333333, -4.277777777777778, -19.0, -1.02, -0.98, 1.0, 2.2, 2.9, -3.901960784313726, 0.5049019607843137, 0.5147058823529411, 1.0, 1.2941176470588236, 1.465686274509804, "PINF", "PINF", "PINF", 1.0, "PINF", "PINF", 30385553590080.207, 239746.14396828003, 210940.96084820447, 1.0, -1.518798405895177, -0.423256984105889, 37937046.27472527, 16.40282158781611, 15.408786386464593, 1.0, 0.41057709793566455, 0.2971309121507478, 6981.416518887663, 1.8111951024620019, 1.786269497846012, 1.0, 0.7666742342770235, 0.6716749951838735, "PINF", "PINF", "PINF", 1.0, "PINF", "PINF", 2.6943134756051514e+17, 508092226.7516594, 437683053.4574324, 1.0, 118.44432646361211, -49.165709011819956, 260624520438.12, 5140.884980337666, 4601.15457939731, 1.0, 0.00018903116190172744, -1.0283071153687133e-06, 26257598.68214287, 29.51131561185238, 27.7756479342181, 1.0, 0.11120609954396513, 0.03244478862162758, 97.97420634920637, 2.9708942221493766, 2.9201656116582866, 1.0, 0.34592282738095237, 0.11737671579512333, -383018.25505050534, -48.555885990212175, -44.559891375732406, 1.0, 18.656841856060602, 64.10776546747996, -25.488095238095244, -0.34486738191500166, -0.3392775214239121, 1.0, 2.968931339285714, 4.5774756876336955, 1.3150134778674099, 0.46675579830791364, 0.4756914575251626, 1.0, 1.3989821631027937, 1.6612589789582164, 6.555555555555555, 1.5611111111111111, 1.55, 1.0, 0.6666666666666667, 0.4722222222222222, 28.77777777777778, 3.8055555555555554, 3.75, 1.0, -0.6666666666666665, -1.6388888888888888, -9.0, -0.010000000000000009, 0.010000000000000009, 1.0, 1.6, 1.95, -1.450980392156863, 0.7524509803921569, 0.7573529411764706, 1.0, 1.1470588235294117, 1.232843137254902, -492.65079365079373, 0.6325475793642857, 0.6373095634928572, 1.0, 1.4648076190476191, 1.9190034697420635, 19464745.949494954, 754.2084899147728, 697.6415328125001, 1.0, -4.606060606060606, -1.7560270675505072, 1871.3174603174605, 3.067108588413492, 2.9967898265071424, 1.0, 0.5869257142857143, 0.45874028025793656, 21.561247248582212, 1.3011724153511353, 1.2940256887850032, 1.0, 0.8681747510143584, 0.8036528103419859, -368463.08888888883, -0.6498525454757684, -0.5629651268527648, 1.0, 10.737261718186668, 34.36599062533445, 10010798467.16162, 208570.27233539015, 191188.95564534934, 1.0, 95.42974060606075, -15877.930325779678, 668995.5333333333, 81.91291223898511, 77.36136373822877, 1.0, -0.0031620915199999937, -0.00018853755666666701, 3327.576883753861, 5.051171380497275, 4.9102260743844734, 1.0, 0.31153492875746885, 0.1482515912965709, "PINF", "PINF", "PINF", 1.0, "PINF", "PINF", 401.3115996330035, 5.727830313486948, 5.586408515307487, 1.0, 0.10119288512538815, 0.0005590169943749487, 1.3768220885629678, 0.18324274451541558, 0.1976176211286562, 1.0, 1.5723063371593213, 1.935850480783594, 0.7835243345637823, 0.7876881629390955, 1.0, 1.134577443533487, 1.2151325903507053, 3.0, 1.202, 1.198, 1.0, 0.88, 0.81, 11.0, 2.01, 1.99, 1.0, 0.4, 0.050000000000000044, -2.6, 0.6364, 0.6436, 1.0, 1.216, 1.342, 0.11764705882352933, 0.9108823529411765, 0.9126470588235294, 1.0, 1.0529411764705883, 1.0838235294117646, "PINF", "PINF", "PINF", 1.0, "PINF", "PINF", 0.09090909090909091, 0.49751243781094534, 0.5025125628140703, 1.0, 2.5, 19.999999999999982, 8.730806546300515, 1.4113254884137527, 1.4022749969601616, 1.0, 0.8016077855788422, 0.7027218515905682, 2.1913487022322444, 1.0924535637219601, 1.0905585753732348, 1.0, 0.9482528578049167, 0.9191799820388069, "PINF", "PINF", "PINF", 1.0, "PINF", "PINF", 1.9665008108956757e-08, 0.005706228717414593, 0.006144509705799984, 1.0, 880.5541417890707, 4242501142.19516, 138.71254790827138, 5.110435887841933, 5.002974490423454, 1.0, -0.021822942465341902, 0.06988170737413131, 1.7614261400035436, 1.7444141330317497, 1.0, 0.6458180759253609, 0.475081206047281, "PINF", "PINF", "PINF", 1.0, "PINF", "PINF", 7223.444550517013, 20.39011729408668, 19.36023681139891, 1.0, -2.4008350521991972, -109.60344363409705, 61.13872671420176, 2.2578125644772533, 2.22564225375598, 1.0, 0.5669278179041132, 0.40265496980554594, 1.2454910261168253, 1.2401778345408005, 1.0, 0.8753054765198945, 0.8094386568484939, -1.0, 0.798, 0.802, 1.0, 1.12, 1.19, -9.0, -0.010000000000000009, 0.010000000000000009, 1.0, 1.6, 1.95, 4.6, 1.3636, 1.3564, 1.0, 0.784, 0.658, 1.8823529411764706, 1.0891176470588235, 1.0873529411764706, 1.0, 0.9470588235294117, 0.9161764705882353, "PINF", "PINF", "PINF", 1.0, "PINF", "PINF", -0.651081962731712, -0.5445172797757025, -0.5112372082943456, 1.0, 742.4352083542311, 38305689.19272088, 0.27009826016782085, 0.748617978394934, 0.7521396937336332, 1.0, 1.307996113785554, 1.7075179623508192, 0.9209800543014416, 0.9223755986385779, 1.0, 1.0575812882980218, 1.0963494962833231, "PINF", "PINF", "PINF", 1.0, "PINF", "PINF", 0.05820862985444317, 1.0, 36303478.93548813, 1.3929185299975178e+18, 0.00575218217150655, 0.18055277835995323, 0.1846988589174082, 1.0, 15.57249007061542, 42617.29447393199, 0.5786252776388575, 0.5839455930227497, 1.0, 1.5817708987749601, 2.283247143345565, "PINF", "PINF", "PINF", 1.0, "PINF", "PINF", 59869.72211490919, 177.4619968500369, 168.507118451391, 1.0, -131.99100344479535, -528922.9908778413, 401.3115996330035, 5.7278303134869475, 5.586408515307487, 1.0, 0.10119288512538815, 0.0005590169943749487, 25.188374720031792, 1.7569551905927858, 1.7391639705958448, 1.0, 0.6772488606121926, 0.5281610303940901, -4.555555555555555, 0.4388888888888889, 0.44999999999999996, 1.0, 1.3333333333333333, 1.5277777777777777, -26.77777777777778, -1.8055555555555554, -1.75, 1.0, 2.6666666666666665, 3.638888888888889, 11.0, 2.01, 1.99, 1.0, 0.4, 0.050000000000000044, 3.450980392156863, 1.2475490196078431, 1.2426470588235294, 1.0, 0.8529411764705882, 0.767156862745098, "PINF", "PINF", "PINF", 1.0, "PINF", "PINF", -0.08353419265652244, -2.042869924669208, -2.059998995886413, 1.0, 136331.67665422524, 5463862709345.7, 0.09090909090909091, 0.49751243781094534, 0.5025125628140703, 1.0, 2.5, 19.999999999999982, 0.31231583302819604, 0.8060197315453479, 0.8090585278662749, 1.0, 1.1776650101634791, 1.3226775937922093, "PINF", "PINF", "PINF", 1.0, "PINF", "PINF", -5.533085592635573e-05, -0.7615458563603548, -0.7388296643783832, 1.0, 39641245305.197495, 2.117911949843939e+24, 1.9665008108956757e-08, 0.005706228717414593, 0.006144509705799984, 1.0, 880.5541417890707, 4242501142.19516, 0.22917900193296076, 0.2347605917566327, 1.0, 3.7843863065139836, 12.898210811714437, "PINF", "PINF", "PINF", 1.0, "PINF", "PINF", 290992.80931441917, 893.5998258984249, 849.0433138129996, 1.0, -6806.570819087061, -948295068489.6099, 1754.1405556797163, 14.794924482626321, 14.32305432076869, 1.0, -0.02566968302658441, -0.44809210276874006, 89.93509035264425, 2.760525497921027, 2.7147819531818547, 1.0, 0.42524820142966624, 0.2230907142267818, -10.11111111111111, -0.12222222222222223, -0.10000000000000009, 1.0, 1.6666666666666665, 2.0555555555555554, -54.55555555555556, -4.611111111111111, -4.5, 1.0, 4.333333333333333, 6.277777777777778, 21.0, 3.02, 2.98, 1.0, -0.19999999999999996, -0.8999999999999999, 5.901960784313726, 1.4950980392156863, 1.4852941176470589, 1.0, 0.7058823529411764, 0.5343137254901961, "PINF", "PINF", "PINF", 1.0, "PINF", "PINF", -0.032701791132583626, -0.8414687633381505, 1.0, 75483608.47155939, 9.913045025317654e+19, 0.04282460317505117, 0.3153687356940052, 0.31983075108029946, 1.0, 13.465401785714302, 623612.0634920576, 0.17570582913847588, 0.6724658257490882, 0.6768068551393724, 1.0, 1.4289255390787534, 1.949346748033327, "PINF", "PINF", "PINF", 1.0, "PINF", "PINF", -3.0900882477227245e-07, 0.39839696496151483, 1.0, 156750282756516.1, 4.6094714349206136e+32, -9.198518549246854e-13, -6.087721831718218e-05, -6.748843653318489e-05, 1.0, 245653.93278956393, 5.8971216794061176e+16, 0.0605128935123625, 0.06323387211421305, 1.0, 17.421794032432604]} +{"a": [-10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -5.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0], "b": [-2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4, 7.4], "c": [-9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4, 20.4, 20.4, -9.0, -9.0, -9.0, -9.0, -9.0, -9.0, -1.8, -1.8, -1.8, -1.8, -1.8, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 20.4, 20.4, 20.4, 20.4], "x": [-10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -10.0, -1.01, 0.0, 0.6, 0.95, -10.0, -1.01, -0.99, 0.0, 0.6, 0.95, -1.01, -0.99, 0.0, 0.6], "expected": ["PINF", "PINF", "PINF", 1.0, "PINF", "PINF", -24079735066.182957, -2291.84346396414, -2091.731497205369, 1.0, 155.2070332942432, 512.1143805238588, -47505.76832932691, 0.4313060843999952, 0.38304679551306287, 1.0, 6.242858629282901, 11.664819014650925, -23.41460389781427, 0.13189547101833973, 0.14239991446593636, 1.0, 1.8793133090075513, 2.532144159645901, 12.11111111111111, 2.1222222222222222, 2.1, 1.0, 0.33333333333333337, -0.05555555555555558, 56.55555555555556, 6.611111111111111, 6.5, 1.0, -2.333333333333333, -4.277777777777778, -19.0, -1.02, -0.98, 1.0, 2.2, 2.9, -3.901960784313726, 0.5049019607843137, 0.5147058823529411, 1.0, 1.2941176470588236, 1.465686274509804, "PINF", "PINF", "PINF", 1.0, "PINF", "PINF", 30385553590080.207, 239746.14396828003, 210940.96084820447, 1.0, -1.518798405895177, -0.423256984105889, 37937046.27472527, 16.40282158781611, 15.408786386464593, 1.0, 0.41057709793566455, 0.2971309121507478, 6981.416518887663, 1.8111951024620019, 1.786269497846012, 1.0, 0.7666742342770235, 0.6716749951838735, "PINF", "PINF", "PINF", 1.0, "PINF", "PINF", 2.6943134756051514e+17, 508092226.7516594, 437683053.4574324, 1.0, 118.44432646361211, -49.165709011819956, 260624520438.12, 5140.884980337666, 4601.15457939731, 1.0, 0.00018903116190172744, -1.0283071153687133e-06, 26257598.68214287, 29.51131561185238, 27.7756479342181, 1.0, 0.11120609954396513, 0.03244478862162758, 97.97420634920637, 2.9708942221493766, 2.9201656116582866, 1.0, 0.34592282738095237, 0.11737671579512333, -383018.25505050534, -48.555885990212175, -44.559891375732406, 1.0, 18.656841856060602, 64.10776546747996, -25.488095238095244, -0.34486738191500166, -0.3392775214239121, 1.0, 2.968931339285714, 4.5774756876336955, 1.3150134778674099, 0.46675579830791364, 0.4756914575251626, 1.0, 1.3989821631027937, 1.6612589789582164, 6.555555555555555, 1.5611111111111111, 1.55, 1.0, 0.6666666666666667, 0.4722222222222222, 28.77777777777778, 3.8055555555555554, 3.75, 1.0, -0.6666666666666665, -1.6388888888888888, -9.0, -0.010000000000000009, 0.010000000000000009, 1.0, 1.6, 1.95, -1.450980392156863, 0.7524509803921569, 0.7573529411764706, 1.0, 1.1470588235294117, 1.232843137254902, -492.65079365079373, 0.6325475793642857, 0.6373095634928572, 1.0, 1.4648076190476191, 1.9190034697420635, 19464745.949494954, 754.2084899147728, 697.6415328125001, 1.0, -4.606060606060606, -1.7560270675505072, 1871.3174603174605, 3.067108588413492, 2.9967898265071424, 1.0, 0.5869257142857143, 0.45874028025793656, 21.561247248582212, 1.3011724153511353, 1.2940256887850032, 1.0, 0.8681747510143584, 0.8036528103419859, -368463.08888888883, -0.6498525454757684, -0.5629651268527648, 1.0, 10.737261718186668, 34.36599062533445, 10010798467.16162, 208570.27233539015, 191188.95564534934, 1.0, 95.42974060606075, -15877.930325779678, 668995.5333333333, 81.91291223898511, 77.36136373822877, 1.0, -0.0031620915199999937, -0.00018853755666666701, 3327.576883753861, 5.051171380497275, 4.9102260743844734, 1.0, 0.31153492875746885, 0.1482515912965709, "PINF", "PINF", "PINF", 1.0, "PINF", "PINF", 401.3115996330035, 5.727830313486948, 5.586408515307487, 1.0, 0.10119288512538815, 0.0005590169943749487, 1.3768220885629678, 0.18324274451541558, 0.1976176211286562, 1.0, 1.5723063371593213, 1.935850480783594, 0.7835243345637818, 0.7876881629390955, 1.0, 1.134577443533487, 1.2151325903507053, 3.0, 1.202, 1.198, 1.0, 0.88, 0.81, 11.0, 2.01, 1.99, 1.0, 0.4, 0.050000000000000044, -2.6, 0.6364, 0.6436, 1.0, 1.216, 1.342, 0.11764705882352933, 0.9108823529411765, 0.9126470588235294, 1.0, 1.0529411764705883, 1.0838235294117646, "PINF", "PINF", "PINF", 1.0, "PINF", "PINF", 0.09090909090909091, 0.49751243781094534, 0.5025125628140703, 1.0, 2.5, 19.999999999999982, 8.730806546300515, 1.4113254884137527, 1.4022749969601616, 1.0, 0.8016077855788422, 0.7027218515905682, 2.1913487022322444, 1.0924535637219601, 1.0905585753732348, 1.0, 0.9482528578049167, 0.9191799820388069, "PINF", "PINF", "PINF", 1.0, "PINF", "PINF", 1.9665008108956757e-08, 0.005706228717414593, 0.006144509705799984, 1.0, 880.5541417890707, 4242501142.19516, 138.71254790827138, 5.110435887841933, 5.002974490423454, 1.0, -0.021822942465341902, 0.06988170737413131, 1.7614261400035436, 1.7444141330317497, 1.0, 0.6458180759253609, 0.475081206047281, "PINF", "PINF", "PINF", 1.0, "PINF", "PINF", 7223.444550517013, 20.39011729408668, 19.36023681139891, 1.0, -2.4008350521991972, -109.60344363409705, 61.13872671420176, 2.2578125644772533, 2.22564225375598, 1.0, 0.5669278179041132, 0.40265496980554594, 1.2454910261168253, 1.2401778345408005, 1.0, 0.8753054765198945, 0.8094386568484939, -1.0, 0.798, 0.802, 1.0, 1.12, 1.19, -9.0, -0.010000000000000009, 0.010000000000000009, 1.0, 1.6, 1.95, 4.6, 1.3636, 1.3564, 1.0, 0.784, 0.658, 1.8823529411764706, 1.0891176470588235, 1.0873529411764706, 1.0, 0.9470588235294117, 0.9161764705882353, "PINF", "PINF", "PINF", 1.0, "PINF", "PINF", -0.651081962731712, -0.5445172797757025, -0.5112372082943456, 1.0, 742.4352083542311, 38305689.19272088, 0.27009826016782085, 0.748617978394934, 0.7521396937336332, 1.0, 1.307996113785554, 1.7075179623508192, 0.9209800543014416, 0.9223755986385779, 1.0, 1.0575812882980218, 1.0963494962833231, "PINF", "PINF", "PINF", 1.0, "PINF", "PINF", 0.05820862985444317, 1.0, 36303478.93548813, 1.3929185299975186e+18, 0.00575218217150655, 0.18055277835995323, 0.1846988589174082, 1.0, 15.57249007061542, 42617.29447393199, 0.5786252776388575, 0.5839455930227497, 1.0, 1.5817708987749601, 2.283247143345565, "PINF", "PINF", "PINF", 1.0, "PINF", "PINF", 59869.72211490919, 177.4619968500369, 168.507118451391, 1.0, -131.99100344479535, -528922.9908778413, 401.3115996330035, 5.7278303134869475, 5.586408515307487, 1.0, 0.10119288512538815, 0.0005590169943749487, 25.188374720031792, 1.7569551905927858, 1.7391639705958448, 1.0, 0.6772488606121926, 0.5281610303940901, -4.555555555555555, 0.4388888888888889, 0.44999999999999996, 1.0, 1.3333333333333333, 1.5277777777777777, -26.77777777777778, -1.8055555555555554, -1.75, 1.0, 2.6666666666666665, 3.638888888888889, 11.0, 2.01, 1.99, 1.0, 0.4, 0.050000000000000044, 3.450980392156863, 1.2475490196078431, 1.2426470588235294, 1.0, 0.8529411764705882, 0.767156862745098, "PINF", "PINF", "PINF", 1.0, "PINF", "PINF", -0.08353419265652244, -2.042869924669208, -2.059998995886413, 1.0, 136331.67665422524, 5463862709345.7, 0.09090909090909091, 0.49751243781094534, 0.5025125628140703, 1.0, 2.5, 19.999999999999982, 0.31231583302819604, 0.8060197315453479, 0.8090585278662749, 1.0, 1.1776650101634791, 1.3226775937922093, "PINF", "PINF", "PINF", 1.0, "PINF", "PINF", -5.533085592635573e-05, -0.7615458563603548, -0.7388296643783832, 1.0, 39641245305.197495, 2.117911949843939e+24, 1.9665008108956757e-08, 0.005706228717414593, 0.006144509705799984, 1.0, 880.5541417890707, 4242501142.19516, 0.22917900193296076, 0.2347605917566327, 1.0, 3.7843863065139836, 12.898210811714453, "PINF", "PINF", "PINF", 1.0, "PINF", "PINF", 290992.80931441917, 893.5998258984249, 849.0433138129996, 1.0, -6806.570819087061, -948295068489.6099, 1754.1405556797163, 14.794924482626321, 14.32305432076869, 1.0, -0.02566968302658441, -0.44809210276874006, 89.93509035264425, 2.760525497921027, 2.7147819531818547, 1.0, 0.42524820142966624, 0.2230907142267818, -10.11111111111111, -0.12222222222222223, -0.10000000000000009, 1.0, 1.6666666666666665, 2.0555555555555554, -54.55555555555556, -4.611111111111111, -4.5, 1.0, 4.333333333333333, 6.277777777777778, 21.0, 3.02, 2.98, 1.0, -0.19999999999999996, -0.8999999999999999, 5.901960784313726, 1.4950980392156863, 1.4852941176470589, 1.0, 0.7058823529411764, 0.5343137254901961, "PINF", "PINF", "PINF", 1.0, "PINF", "PINF", -0.032701791132583626, -0.8414687633381505, 1.0, 75483608.47155939, 9.913045025317654e+19, 0.04282460317505117, 0.3153687356940052, 0.31983075108029946, 1.0, 13.465401785714302, 623612.0634920576, 0.17570582913847588, 0.6724658257490882, 0.6768068551393724, 1.0, 1.4289255390787534, 1.949346748033327, "PINF", "PINF", "PINF", 1.0, "PINF", "PINF", -3.0900882477227245e-07, 0.39839696496151483, 1.0, 156750282756516.1, 4.6094714349206136e+32, -9.198518549246854e-13, -6.087721831718218e-05, -6.748843653318489e-05, 1.0, 245653.93278956393, 5.8971216794061176e+16, 0.0605128935123625, 0.06323387211421305, 1.0, 17.421794032432604]} diff --git a/lib/node_modules/@stdlib/math/base/special/hyp2f1/test/fixtures/python/edge_cases5.json b/lib/node_modules/@stdlib/math/base/special/hyp2f1/test/fixtures/python/edge_cases5.json new file mode 100644 index 000000000000..b2ea986a0fd1 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/hyp2f1/test/fixtures/python/edge_cases5.json @@ -0,0 +1 @@ +{"a": [1.5, 1.5, 2.5, 0.5, 1.5, 0.5, 2.0, 1.5, 2.5, 1.5], "b": [2.5, 2.5, 1.5, 2.5, 2.5, 1.5, 3.0, 3.5, 2.5, 3.5], "c": [3.0, 3.0, 3.0, 2.0, 2.0, 1.0, 4.0, 4.0, 4.0, 3.0], "x": [0.9, 0.95, 0.9, 0.92, 0.91, 0.9, 0.9, 0.88, 0.93, 0.91], "expected": [14.663397526525134, 30.949523656432504, 14.663397526525134, 6.507774205759818, 106.96827020610523, 7.033214388515233, 21.78942310292968, 13.41253423166626, 36.54504530314331, 88.86455455103395]} diff --git a/lib/node_modules/@stdlib/math/base/special/hyp2f1/test/fixtures/python/edge_cases6.json b/lib/node_modules/@stdlib/math/base/special/hyp2f1/test/fixtures/python/edge_cases6.json new file mode 100644 index 000000000000..18cf8736eded --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/hyp2f1/test/fixtures/python/edge_cases6.json @@ -0,0 +1 @@ +{"a": [2.0, 2.0, 3.0, 0.5, 1.5, 2.0, 4.0, 0.5], "b": [-1.0, -2.0, -2.0, -3.0, -3.0, -4.0, -2.0, -1.0], "c": [-1.0, -2.0, -2.0, -3.0, -3.0, -4.0, -2.0, -1.0], "x": [0.5, 0.5, 0.3, 0.7, -0.5, 0.6, 0.8, -0.9], "expected": [2.0, 2.75, 2.44, 1.6409375, 0.4453125, 4.792, 10.600000000000001, 0.55]} diff --git a/lib/node_modules/@stdlib/math/base/special/hyp2f1/test/fixtures/python/outliers.json b/lib/node_modules/@stdlib/math/base/special/hyp2f1/test/fixtures/python/outliers.json index f20b6e9ded7c..0498a419a23a 100644 --- a/lib/node_modules/@stdlib/math/base/special/hyp2f1/test/fixtures/python/outliers.json +++ b/lib/node_modules/@stdlib/math/base/special/hyp2f1/test/fixtures/python/outliers.json @@ -1 +1 @@ -{"a": [-1.8, 1.8, 1.8, 1.8, 1.8, 5.0, 10.0, 10.0, 2.0, 2.0, -1.8, 1.8, 10.0, 10.0, 0.5, -8.0, -0.1156544430516313, -27.911722328444608, -10.184355055477743, -5.0083982772911, -0.7429095709749414, -14.55029516886238, -5.428179853908536, -1.8190858888165087, -0.9534205693212994, -31.70680212982947, -0.18350917503602782, -200.19574300099214, -8.837706832399117, -3.2052905962805456, -13.37614633859299], "b": [7.4, -2.5, 1.0, 7.4, 7.4, 7.4, 7.4, 7.4, 3.0, 2.5, -2.5, 7.4, 1.0, 7.4, -269.5, 18.016500331508873, 12.722140489351698, 14.018736008860946, 6.5450429328481174, 171.09919289684245, 11.725525989335528, 0.46553367087834685, 26.782963689614604, 21.025202609254364, 10.024920055648606, 0.11445767340979862, 14.696533286274349, 1.9444493115386567, 0.19096384651567044, 0.3048596186043564, 1.337786902832312], "c": [20.4, 20.4, 20.4, -1.8, 20.4, 20.4, 20.4, 20.4, 5.0, -3.25, 20.4, -1.8, -1.8, -1.8, 1.5, 10.805295997850628, -0.6030985338257255, -1.0168630024136034, -0.44051751620383994, -1.4923865283013589, -7.299203351011158, -0.5349901418098844, -4.162402828198655, -0.6960141045675334, -0.23845367675425955, -0.5570625216964069, -6.338990250643928, -0.6933677849479691, -2.3808990396202425, -0.7039276707364683, -0.05015281580946018], "x": [-10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, 0.95, 0.99, 0.999, -10.0, -1.01, -0.99, -0.99, 0.998001, 0.90875647507, -0.0005448214561780684, 0.6228483452847298, 0.6555896492302491, 0.7073764056574465, 0.11534401417791407, 0.6086682776938632, 0.10047548647104909, 0.2570211738060222, 0.4419851803780206, 0.020574313007314604, -0.9003519736816863, 0.24492811068225362, -0.27624718180517105, 0.8496565195400692, -0.0022109253176725296], "expected": [16.334204105729413, 5.883122144128727, 0.5820646473844754, 0.010147094307759376, 0.07291374137469146, 0.0011628419587190388, 8.042653908304492e-06, 566.0092271657466, 27.699347904322664, 2.183739328012162e+26, -0.5786871007671348, 0.10921062752340924, -0.8752587026378827, 0.4234752106080307, 0.053963052503373715, -3.566216341436626e-09, 0.998681836639102, 5.33299803869569, 1.1177709865124041, 3.491332086988064e+82, 1.132062691110089, -0.0006927158077474787, 98.41698380414908, -221.57018712798285, 43.53554136829992, 1.0540592696289446, 0.5371016318543966, 0.0028040224553278668, -2.4067466563131665, 0.028751519134363426, 0.18419839456905535]} +{"a": [-1.8, 1.8, 1.8, 1.8, 1.8, 5.0, 10.0, 10.0, 2.0, 2.0, -1.8, 1.8, 10.0, 10.0, 0.5, -8.0, -0.1156544430516313, -27.911722328444608, -10.184355055477743, -5.0083982772911, -0.7429095709749414, -14.55029516886238, -5.428179853908536, -1.8190858888165087, -0.9534205693212994, -31.70680212982947, -0.18350917503602782, -200.19574300099214, -8.837706832399117, -3.2052905962805456, -13.37614633859299], "b": [7.4, -2.5, 1.0, 7.4, 7.4, 7.4, 7.4, 7.4, 3.0, 2.5, -2.5, 7.4, 1.0, 7.4, -269.5, 18.016500331508873, 12.722140489351698, 14.018736008860946, 6.5450429328481174, 171.09919289684245, 11.725525989335528, 0.46553367087834685, 26.782963689614604, 21.025202609254364, 10.024920055648606, 0.11445767340979862, 14.696533286274349, 1.9444493115386567, 0.19096384651567044, 0.3048596186043564, 1.337786902832312], "c": [20.4, 20.4, 20.4, -1.8, 20.4, 20.4, 20.4, 20.4, 5.0, -3.25, 20.4, -1.8, -1.8, -1.8, 1.5, 10.805295997850628, -0.6030985338257255, -1.0168630024136034, -0.44051751620383994, -1.4923865283013589, -7.299203351011158, -0.5349901418098844, -4.162402828198655, -0.6960141045675334, -0.23845367675425955, -0.5570625216964069, -6.338990250643928, -0.6933677849479691, -2.3808990396202425, -0.7039276707364683, -0.05015281580946018], "x": [-10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, 0.95, 0.99, 0.999, -10.0, -1.01, -0.99, -0.99, 0.998001, 0.90875647507, -0.0005448214561780684, 0.6228483452847298, 0.6555896492302491, 0.7073764056574465, 0.11534401417791407, 0.6086682776938632, 0.10047548647104909, 0.2570211738060222, 0.4419851803780206, 0.020574313007314604, -0.9003519736816863, 0.24492811068225362, -0.27624718180517105, 0.8496565195400692, -0.0022109253176725296], "expected": [16.334204105729413, 5.883122144128727, 0.5820646473844754, 0.010147094307759376, 0.07291374137469146, 0.0011628419587190388, 8.042653908304492e-06, 566.0092271658314, 27.699347904322664, 2.1837393280121743e+26, -0.5786871007671348, 0.10921062752340924, -0.8752587026378827, 0.4234752106080307, 0.053963052503373715, -3.566216341436626e-09, 0.998681836639102, 5.33299803869569, 1.1177709865124041, 3.491332086988064e+82, 1.132062691110089, -0.0006927158077474787, 98.41698380414908, -221.57018712798285, 43.53554136829992, 1.0540592696289446, 0.5371016318543966, 0.0028040224553278668, -2.4067466563131665, 0.028751519134363426, 0.18419839456905535]} diff --git a/lib/node_modules/@stdlib/math/base/special/hyp2f1/test/fixtures/python/runner.py b/lib/node_modules/@stdlib/math/base/special/hyp2f1/test/fixtures/python/runner.py index ffa3fd2da195..01a2472c0ef4 100644 --- a/lib/node_modules/@stdlib/math/base/special/hyp2f1/test/fixtures/python/runner.py +++ b/lib/node_modules/@stdlib/math/base/special/hyp2f1/test/fixtures/python/runner.py @@ -256,6 +256,46 @@ def main(): # Outliers: gen_outliers("outliers.json") + # Edge Cases #5 + # d = c - a - b is a negative integer, x > 0.85, a and b are positive integers. + pts = [ + (1.5, 2.5, 3.0, 0.90), + (1.5, 2.5, 3.0, 0.95), + (2.5, 1.5, 3.0, 0.90), + (0.5, 2.5, 2.0, 0.92), + (1.5, 2.5, 2.0, 0.91), + (0.5, 1.5, 1.0, 0.90), + (2.0, 3.0, 4.0, 0.90), + (1.5, 3.5, 4.0, 0.88), + (2.5, 2.5, 4.0, 0.93), + (1.5, 3.5, 3.0, 0.91), + ] + a, b, c, x = zip(*pts) + a = np.array(a) + b = np.array(b) + c = np.array(c) + x = np.array(x) + gen(a, b, c, x, "edge_cases5.json") + + # Edge Cases #6 + # b = c is a negative integer: 2F1(a, b; b; x) -> finite polynomial sum. + pts = [ + (2.0, -1.0, -1.0, 0.5), + (2.0, -2.0, -2.0, 0.5), + (3.0, -2.0, -2.0, 0.3), + (0.5, -3.0, -3.0, 0.7), + (1.5, -3.0, -3.0, -0.5), + (2.0, -4.0, -4.0, 0.6), + (4.0, -2.0, -2.0, 0.8), + (0.5, -1.0, -1.0, -0.9), + ] + a, b, c, x = zip(*pts) + a = np.array(a) + b = np.array(b) + c = np.array(c) + x = np.array(x) + gen(a, b, c, x, "edge_cases6.json") + if __name__ == "__main__": main() diff --git a/lib/node_modules/@stdlib/math/base/special/hyp2f1/test/test.js b/lib/node_modules/@stdlib/math/base/special/hyp2f1/test/test.js index 4bf5b1385ba1..18bfc160b8b6 100644 --- a/lib/node_modules/@stdlib/math/base/special/hyp2f1/test/test.js +++ b/lib/node_modules/@stdlib/math/base/special/hyp2f1/test/test.js @@ -34,6 +34,8 @@ var edgeCases1 = require( './fixtures/python/edge_cases1.json' ); var edgeCases2 = require( './fixtures/python/edge_cases2.json' ); var edgeCases3 = require( './fixtures/python/edge_cases3.json' ); var edgeCases4 = require( './fixtures/python/edge_cases4.json' ); +var edgeCases5 = require( './fixtures/python/edge_cases5.json' ); +var edgeCases6 = require( './fixtures/python/edge_cases6.json' ); var outliers = require( './fixtures/python/outliers.json' ); @@ -238,6 +240,50 @@ tape( 'the function correctly evaluates the hypergeometric function', function t t.end(); }); +tape( 'the function correctly evaluates the hypergeometric function', function test( t ) { + var expected; + var a; + var b; + var c; + var x; + var v; + var i; + + a = edgeCases5.a; + b = edgeCases5.b; + c = edgeCases5.c; + x = edgeCases5.x; + expected = edgeCases5.expected; + + for ( i = 0; i < x.length; i++ ) { + v = hyp2f1( a[ i ], b[ i ], c[ i ], x[ i ] ); + t.strictEqual( isAlmostSameValue( v, expected[ i ], 12 ), true, 'returns expected value.' ); + } + t.end(); +}); + +tape( 'the function correctly evaluates the hypergeometric function', function test( t ) { + var expected; + var a; + var b; + var c; + var x; + var v; + var i; + + a = edgeCases6.a; + b = edgeCases6.b; + c = edgeCases6.c; + x = edgeCases6.x; + expected = edgeCases6.expected; + + for ( i = 0; i < x.length; i++ ) { + v = hyp2f1( a[ i ], b[ i ], c[ i ], x[ i ] ); + t.strictEqual( isAlmostSameValue( v, expected[ i ], 1 ), true, 'returns expected value.' ); + } + t.end(); +}); + tape( 'the function correctly evaluates the hypergeometric function', function test( t ) { var expected; var a;