tstCRAM.cpp

./Solver/cram/src/tests/tstCRAM.cpp

/******************************************************************************
* CRAM Unit tests
* Author: Aarno Isotalo
*
* This was arranged nicely to multiple files, but turns out that gtest does
* not work properly on one of the platforms. The only work-around found
* was to not have gtest features in libraries so now we have this mess.
* Have fun.
*
* TEST OVERVIEW
*
* tstCRAM1 tests of OrigenToCRSMatrix()
* tstCRAM2 basic 2x2 tests of kernel_cram()
* tstCRAM3 Full system depletion test. Fresh fuel with and without source.
* Results are compared to precalculated results.
* tstCRAM4 Decay only tests. Old fuel decay and random source decay.
* Results are compared to precalculated results.
* tstCRAM5 Full system with random initial concentrations and source.
* Results are compared to "blessed" results from CRAM
* tstCRAM6 Tests negative source term ASSUMING POSITIVE SOURCE TERM WORKS.
* tstCRAM7 Tests the adjoint ASSUMING FORWARD CALCULATION WORKS
* tstCRAM8 Tests time dependent source term, some tests assume constant works
*
*****************************************************************************/
#include <ctime>
#include <iostream>
#include <vector>
#include "Nemesis/gtest/nemesis_gtest.hh"
#include "Standard/Interface/Reporter.h"
using std::free;
using std::malloc;
using std::calloc;
using std::pow;
using std::copy;
"tstCRAM5_BlessedResults.txt" );
/******************************************************************************
* Compare results against reference results. *
* *
* For each nuclide, test is passed if: *
* 1) absolute differences is below abs_tol*<total atomic density> *
* OR *
* 2) relative difference is below rel_tol *
* *
* ZAI is only used for the error message can be nullptr. *
* *
*****************************************************************************/
void CheckErrors( int itot,
double* n,
double* n_ref,
double abs_tol,
double rel_tol,
int* ZAI )
{
int i;
double tot_adens = 0.0;
double abs_err, rel_err;
for( i = 0; i < itot; i++ ) tot_adens += std::fabs( n_ref[i] );
ASSERT_NE( 0.0, tot_adens );
for( i = 0; i < itot; i++ )
{
abs_err = ( n[i] - n_ref[i] ) / tot_adens;
if( n_ref[i] != 0.0 )
rel_err = n[i] / n_ref[i] - 1.0;
else if( n[i] == 0.0 )
rel_err = 0.0;
else
rel_err = 1e99;
if( ZAI )
ASSERT_TRUE( ( std::fabs( rel_err ) < rel_tol ) ||
( std::fabs( abs_err ) < abs_tol ) )
<< "Absolute and relative errors are above tolerance for "
"nuclide "
<< i << " (" << ZAI[i] << ")\n"
<< " Abs: " << abs_err << "(tol: " << abs_tol
<< ") Rel: " << rel_err << "(tol: " << rel_tol << ")";
else
ASSERT_TRUE( ( rel_err < rel_tol ) || ( abs_err < abs_tol ) )
<< "Absolute and relative errors are above tolerance for "
"nuclide "
<< i << " (ZAI not given)\n"
<< " Abs: " << abs_err << "(tol: " << abs_tol
<< ") Rel: " << rel_err << "(tol: " << rel_tol << ")";
}
}
/******************************************************************************
* Checks CRS matrix against Origen form data. *
* *
* Arguments are the same as for origenToCRSMatrix, but everything is input *
* and pointer pointer are replaced with pointers. *
* If sort_nuclides == 1, then ZAI is required (cannot be null). *
* *
* IMPORTANT! *
* Indexing of dummies (code makes more sense with this in mind): *
* The positive dummy, if it exists, is always the first one. Thus it has *
* index itot in e.g. diag[]. and index 0 in src_dummy_n0[] *
* The negative dummy, if it exists, is always the last one. Thus it has *
* index a_n-1 in e.g. diag[]. and num_dummy-1 in src_dummy_n0[]. *
* There are at most one positive and one negative dummy. *
* *
*****************************************************************************/
void CheckCRSMatrix( int a_n,
double* a_val,
int* a_ci,
int* a_rp,
int* a_diag_idx,
int a_nnz,
int* newIdx,
int* oldIdx,
double* src_dummy_n0,
int itot,
int non,
int* non0,
int* kd,
double* diag,
double* a,
int* loc,
double** source_term,
int source_order,
int zero_flux_step,
int is_adjoint,
int sort_nuclides,
int* ZAI )
{
int i, j, p;
double** A; // dense matrix made from converted
double** B; // dense matrix made directly from origen stuff
double num_dummy = source_order + 1;
ASSERT_EQ( itot + num_dummy, a_n ) << "size of the matrix is incorrect";
/*** Check that diagonal is non-positive and offdiagonal non-negative
inside the plain A area (i.e. source is not checked) ***/
for( i = 0; i < a_n; i++ )
ASSERT_LE( a_val[a_diag_idx[i]], 0.0 ) << "positive diagonal element "
<< i;
for( i = 0; i < itot; i++ )
for( j = a_rp[i]; j < a_rp[i]; j++ )
if( ( j != a_diag_idx[i] ) && ( a_ci[j] < itot ) )
{
ASSERT_GE( a_val[i], 0.0 ) << "negative off-diagonal element "
<< i << "," << a_ci[j];
}
/*** Check the sorting ***/
// check for consistency
for( i = itot; i < a_n; i++ )
ASSERT_EQ( oldIdx[newIdx[i]], i ) << "indexing mismatch";
// check that ZAI ascends in new indexing if sorting was done
if( sort_nuclides )
for( i = 1; i < itot; i++ ) // new idx
ASSERT_GE( ZAI[oldIdx[i]], ZAI[oldIdx[i - 1]] )
<< "ZAI not sorted properly";
// check that the first itot elements in the index vectors are not dummies
for( i = 0; i < itot; i++ )
{
ASSERT_LE( newIdx[i], itot - 1 ) << "dummy element not indexed to end";
ASSERT_LE( oldIdx[i], itot - 1 ) << "dummy element not indexed to end";
}
// check that the dummies are unsorted at the end
for( i = itot; i < a_n; i++ )
{
ASSERT_LE( newIdx[i], i ) << "dummy elements sorted";
ASSERT_LE( oldIdx[i], i ) << "dummy elements sorted";
}
/*** Convert CRS to dense matrix WITH OLD INDEXING ***/
A = (double**)calloc( a_n, sizeof( double* ) );
for( i = 0; i < a_n; i++ ) A[i] = (double*)calloc( a_n, sizeof( double ) );
for( i = 0; i < a_n; i++ ) // row in new indexing
for( j = a_rp[i]; j < a_rp[i + 1];
j++ ) // elements of row in new indexing
A[oldIdx[i]][oldIdx[a_ci[j]]] += a_val[j];
/*** if adjoint, transpose the source area so we can use same tests ***/
if( is_adjoint )
for( i = itot; i < a_n; i++ )
for( j = 0; j < i; j++ )
{
double tmp = A[i][j];
A[i][j] = A[j][i];
A[j][i] = tmp;
}
/*** Convert Origen form to dense matrix ***/
B = (double**)calloc( itot, sizeof( double* ) );
for( i = 0; i < itot; i++ )
B[i] = (double*)calloc( itot, sizeof( double ) );
// Add diagonal elements
for( i = 0; i < itot; i++ ) B[i][i] += diag[i];
// Add offdiagonal elements
j = 0;
for( i = 0; i < itot; i++ ) // rows (daughters)
for( p = 0; p < non0[i]; p++ )
{
B[i][loc[j]] += a[j];
j++;
}
/*** Check that the "A-parts" of the dense forms are equal ***/
for( i = 0; i < itot; i++ )
for( j = 0; j < itot; j++ )
ASSERT_FLOAT_EQ( B[i][j], A[i][j] ) << "A(" << i << "," << j
<< ") does not match";
/*** Check the source term ***/
for( i = 0; i < itot; i++ )
for( j = 0; j < source_order + 1; j++ )
ASSERT_FLOAT_EQ( A[i][itot + j], source_term[i][j] )
<< "Source (order " << j << " term) not preserved for nuclide "
<< i;
/*** Check the dummy decay rates ***/
for( i = itot; i < a_n; i++ )
ASSERT_EQ( A[i][i], 0.0 ) << "Dummy element " << i
<< " has nonzero diagonal";
/*** Check that there are no stray elements in the other source area ***/
// in forward calculation the source should be in last coulmns
// in adjoint calculation the source should be in last rows
int sum = 0;
for( i = itot; i < a_n; i++ ) // rows
for( j = 0; j < itot; j++ ) // columns
if( A[i][j] != 0.0 ) sum++;
ASSERT_EQ( sum, 0 ) << "Stray element in forward/adjoint source area "
"(adjoint/forward mode)";
/*** Check the off diagonal "source decays to sourde" ***/
for( i = itot; i < a_n; i++ )
ASSERT_FLOAT_EQ( A[i][i - 1], i - itot )
<< "The production element for order " << i - itot
<< " term in source is wrong ";
/*** Free memory ***/
for( i = 0; i < a_n; i++ ) free( A[i] );
free( A );
for( i = 0; i < itot; i++ ) free( B[i] );
free( B );
}
/******************************************************************************
* Fixture class for the tstCRAM* gtests that involve reading origen library *
* *
*****************************************************************************/
class tstCRAM : public ::testing::Test
{
protected:
{
// Must load rev01 library because that is what reference is based on
{
ScaleUtils::IO::DB opts;
Origen::loadLibrary( "pwr.rev01.orglib", opts ) );
opts.throwErrorStack();
trx = lib->newsp_transition_matrix_at( 0 );
}
itot = trx->get_itot();
non = trx->get_non();
// Convert the Lists to vectors
non0.resize( itot );
kd.resize( itot );
loc.resize( non );
ZAI.resize( itot );
copy( ( trx->get_non0_() )->begin(),
( trx->get_non0_() )->end(),
non0.begin() );
copy( ( trx->get_kd_() )->begin(),
( trx->get_kd_() )->end(),
kd.begin() );
copy( ( trx->get_loc() )->begin(),
( trx->get_loc() )->end(),
loc.begin() );
copy( ( trx->get_nucl() )->begin(),
( trx->get_nucl() )->end(),
ZAI.begin() );
}
~tstCRAM() {}
// variables in the test class
int itot, non;
// these are not strictly part of the library read, but are required
// to fold it which will always follow
DoubleList DLdiag, DLa;
double flux;
// and other junk
int i;
};
/******************************************************************************
* Fixture class for the tstOrigenToCRSmatrix gtests. Inherits tstCRAM. *
* *
*****************************************************************************/
{
protected:
{
// set the zero flux flag
EXPECT_GE( flux, 0 );
if( flux == 0.0 )
zero_flux_step = 1;
else
zero_flux_step = 0;
// Fold library
trx->fold_flux( flux, DLdiag, DLa );
Vec_Dbl diag( DLdiag.begin(), DLdiag.end() );
Vec_Dbl a( DLa.begin(), DLa.end() );
&a_val,
&a_ci,
&a_rp,
&a_diag_idx,
&a_nnz,
&newIdx,
&oldIdx,
&src_dummy_n0,
itot,
non,
&non0[0],
&kd[0],
&diag[0],
&a[0],
&loc[0],
source_term,
source_order,
zero_flux_step,
is_adjoint,
sort_nuclides,
&ZAI[0] );
// Check the crs matrix against original data
a_val,
a_ci,
a_rp,
a_diag_idx,
a_nnz,
newIdx,
oldIdx,
src_dummy_n0,
itot,
non,
&non0[0],
&kd[0],
&diag[0],
&a[0],
&loc[0],
source_term,
source_order,
zero_flux_step,
is_adjoint,
sort_nuclides,
&ZAI[0] );
if( source_order >= 0 )
{
free( src_dummy_n0 );
for( i = 0; i < itot; i++ ) free( source_term[i] );
free( source_term );
}
free( a_val );
free( a_ci );
free( a_rp );
free( a_diag_idx );
free( oldIdx );
free( newIdx );
}
int i;
};
/*****************************************************************************/
///////////////////////////////////////////////////////////////////////////////
//---------------------------------------------------------------------------//
//- tstCRAM1 -//
//---------------------------------------------------------------------------//
///////////////////////////////////////////////////////////////////////////////
/*****************************************************************************/
/******************************************************************************
* TEST 1: *
* 4x4 system without double define, no source *
* *
*****************************************************************************/
TEST( tstOrigenToCRSMatrix_simple, 1 )
{
const int itot = 4; // number of nuclides
const int non = 5; // number of reactions (non-diag. elements in A)
int non0[itot]; // number of parents for nuclide i
int kd[itot]; // number of decay parents for nuclide i
double diag[itot]; // diagonal elements of A
double a[non]; // non-diagonal elements of A
int loc[non]; // matrix A parent pointers
double** source_term = nullptr; // source term
int source_order = -1;
double *a_val, *src_dummy_n0;
int a_n, *a_ci, *a_rp, *a_diag_idx, a_nnz, *oldIdx, *newIdx, i;
/* The test matrix is like this:
1 0 2 0
3 4 0 0
5 6 7 8
0 0 0 9
*/
// Sorted rows CRS form is
int crs_nnz = 9;
double crs_val[9] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int crs_ci[9] = {0, 2, 0, 1, 0, 1, 2, 3, 3};
int crs_rp[5] = {0, 2, 4, 8, 9};
int crs_diag_idx[4] = {0, 3, 6, 8};
// Origen format input , note that some of the offdiagonals are unsorted
diag[0] = 1;
diag[1] = 4;
diag[2] = 7;
diag[3] = 9;
non0[0] = 1;
non0[1] = 1;
non0[2] = 3;
non0[3] = 0;
kd[0] = 1;
kd[1] = 0;
kd[2] = 1;
kd[3] = 0;
a[0] = 2;
a[1] = 3;
a[2] = 8;
a[3] = 6;
a[4] = 5;
loc[0] = 2;
loc[1] = 0;
loc[2] = 3;
loc[3] = 1;
loc[4] = 0;
// Convert to CRS form
&a_val,
&a_ci,
&a_rp,
&a_diag_idx,
&a_nnz,
&newIdx,
&oldIdx,
&src_dummy_n0,
itot,
non,
non0,
kd,
diag,
a,
loc,
source_term,
source_order,
0,
0,
0,
nullptr );
// Check the results
ASSERT_EQ( itot, a_n );
EXPECT_EQ( crs_nnz, a_nnz );
for( i = 0; i < itot + 1; i++ ) EXPECT_EQ( crs_rp[i], a_rp[i] );
for( i = 0; i < a_nnz; i++ ) EXPECT_EQ( crs_ci[i], a_ci[i] );
for( i = 0; i < a_nnz; i++ ) EXPECT_FLOAT_EQ( crs_val[i], a_val[i] );
for( i = 0; i < itot; i++ ) EXPECT_EQ( crs_diag_idx[i], a_diag_idx[i] );
// Free memory
free( a_rp );
free( a_ci );
free( a_val );
free( a_diag_idx );
free( oldIdx );
free( newIdx );
}
/******************************************************************************
* TEST 2: *
* 4x4 system with double defines, no source *
* *
*****************************************************************************/
TEST( tstOrigenToCRSMatrix_simple, 2 )
{
const int itot = 4; // number of nuclides
const int non = 5 + 3; // number of reactions (non-diag. elements in A)
int non0[itot]; // number of parents for nuclide i
int kd[itot]; // number of decay parents for nuclide i
double diag[itot]; // diagonal elements of A
double a[non]; // non-diagonal elements of A
int loc[non]; // matrix A parent pointers
double** source_term = nullptr; // source term
int source_order = -1;
double *a_val, *src_dummy_n0;
int a_n, *a_ci, *a_rp, *a_diag_idx, a_nnz, *oldIdx, *newIdx, i;
/* The test matrix is same as in test #1:
1 0 2 0
3 4 0 0
5 6 7 8
0 0 0 9
but the values 2, 5 and 8 are double defined (made from decay and
transmutation reactions worth 0.1 and 0.9 times the value)
*/
// Sorted rows CRS form is
int crs_nnz = 9;
double crs_val[9] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int crs_ci[9] = {0, 2, 0, 1, 0, 1, 2, 3, 3};
int crs_rp[5] = {0, 2, 4, 8, 9};
int crs_diag_idx[4] = {0, 3, 6, 8};
// Origen format input , note that some of the offdiagonals are unsorted
diag[0] = 1;
diag[1] = 4;
diag[2] = 7;
diag[3] = 9;
non0[0] = 2;
non0[1] = 1;
non0[2] = 5;
non0[3] = 0;
kd[0] = 1;
kd[1] = 0;
kd[2] = 3;
kd[3] = 0;
// row 0
a[0] = 2 * 0.1;
a[1] = 2 * 0.9;
loc[0] = 2;
loc[1] = 2;
// row 1
a[2] = 3;
loc[2] = 0;
// row 2 decay
a[3] = 5 * 0.1;
a[4] = 8 * 0.1;
a[5] = 6;
loc[3] = 0;
loc[4] = 3;
loc[5] = 1;
// row 2 activation
a[6] = 8 * 0.9;
a[7] = 5 * 0.9;
loc[6] = 3;
loc[7] = 0;
// Convert to CRS form
&a_val,
&a_ci,
&a_rp,
&a_diag_idx,
&a_nnz,
&newIdx,
&oldIdx,
&src_dummy_n0,
itot,
non,
non0,
kd,
diag,
a,
loc,
source_term,
source_order,
0,
0,
0,
nullptr );
// Check the results
ASSERT_EQ( itot, a_n );
EXPECT_EQ( crs_nnz, a_nnz );
for( i = 0; i < itot + 1; i++ ) EXPECT_EQ( crs_rp[i], a_rp[i] );
for( i = 0; i < a_nnz; i++ ) EXPECT_EQ( crs_ci[i], a_ci[i] );
for( i = 0; i < a_nnz; i++ ) EXPECT_FLOAT_EQ( crs_val[i], a_val[i] );
for( i = 0; i < itot; i++ ) EXPECT_EQ( crs_diag_idx[i], a_diag_idx[i] );
// Free memory
free( a_rp );
free( a_ci );
free( a_val );
free( a_diag_idx );
free( oldIdx );
free( newIdx );
}
/******************************************************************************
* TEST 3: *
* 4x4 system without double define, order 2 source *
* *
*****************************************************************************/
TEST( tstOrigenToCRSMatrix_simple, 3 )
{
const int itot = 4; // number of nuclides
const int non = 5; // number of reactions (non-diag. elements in A)
int non0[itot]; // number of parents for nuclide i
int kd[itot]; // number of decay parents for nuclide i
double diag[itot]; // diagonal elements of A
double a[non]; // non-diagonal elements of A
int loc[non]; // matrix A parent pointers
double** source_term = nullptr; // source term
int source_order = -1;
double *a_val, *src_dummy_n0;
int a_n, *a_ci, *a_rp, *a_diag_idx, a_nnz, *oldIdx, *newIdx, i;
/* The test matrix and source term are like this:
1 0 2 0 0 0 0
3 4 0 0 0.1 0.2*t 0.3*t^2
5 6 7 8 0 0.4*t 0
0 0 0 9 0.5 0 0.6*t^2
the modified matrix (homogenized system) is
1 0 2 0 0 0 0
3 4 0 0 0.1 0.2 0.3
5 6 7 8 0 0.4 0
0 0 0 9 0.5 0 0.6
0 0 0 0 0.0 0 0
0 0 0 0 1 0.0 0
0 0 0 0 0 2 0.0
*/
// Sorted rows CRS form is (note that diagonals are always allocated)
int crs_n = 7;
int crs_nnz = 20;
double crs_val[20] = {1, 2, 3, 4, 0.1, 0.2, 0.3, 5, 6, 7,
8, 0.4, 9, 0.5, 0.6, 0, 1, 0, 2, 0};
int crs_ci[20] = {0, 2, 0, 1, 4, 5, 6, 0, 1, 2,
3, 5, 3, 4, 6, 4, 4, 5, 5, 6};
int crs_rp[8] = {0, 2, 7, 12, 15, 16, 18, 20};
int crs_diag_idx[7] = {0, 3, 9, 12, 15, 17, 19};
// Origen format input , note that some of the offdiagonals are unsorted
diag[0] = 1;
diag[1] = 4;
diag[2] = 7;
diag[3] = 9;
non0[0] = 1;
non0[1] = 1;
non0[2] = 3;
non0[3] = 0;
kd[0] = 1;
kd[1] = 0;
kd[2] = 1;
kd[3] = 0;
a[0] = 2;
a[1] = 3;
a[2] = 8;
a[3] = 6;
a[4] = 5;
loc[0] = 2;
loc[1] = 0;
loc[2] = 3;
loc[3] = 1;
loc[4] = 0;
source_order = 2;
source_term = (double**)malloc( itot * sizeof( double* ) );
for( i = 0; i < itot; i++ )
source_term[i] = (double*)calloc( source_order + 1, sizeof( double ) );
source_term[1][0] = 0.1;
source_term[1][1] = 0.2;
source_term[1][2] = 0.3;
source_term[2][1] = 0.4;
source_term[3][0] = 0.5;
source_term[3][2] = 0.6;
// Convert to CRS form
&a_val,
&a_ci,
&a_rp,
&a_diag_idx,
&a_nnz,
&newIdx,
&oldIdx,
&src_dummy_n0,
itot,
non,
non0,
kd,
diag,
a,
loc,
source_term,
source_order,
0,
0,
0,
nullptr );
// Check the results
ASSERT_EQ( crs_n, a_n );
EXPECT_EQ( crs_nnz, a_nnz );
for( i = 0; i < itot + 1; i++ ) EXPECT_EQ( crs_rp[i], a_rp[i] );
for( i = 0; i < a_nnz; i++ ) EXPECT_EQ( crs_ci[i], a_ci[i] );
for( i = 0; i < a_nnz; i++ ) EXPECT_FLOAT_EQ( crs_val[i], a_val[i] );
for( i = 0; i < itot; i++ ) EXPECT_EQ( crs_diag_idx[i], a_diag_idx[i] );
// Free memory
free( a_rp );
free( a_ci );
free( a_val );
free( a_diag_idx );
free( oldIdx );
free( newIdx );
free( src_dummy_n0 );
for( i = 0; i < itot; i++ ) free( source_term[i] );
free( source_term );
}
/******************************************************************************
* Tests with Real full sized system. *
* *
* The actual testing is in the destructor of the tstOrigenToCRSMatrix class *
* in tstCRAMcommons.cpp. Most setup is done in the constructor of tstCRAM *
* which tstOrigenToCRSMatrix inherits. *
* *
* the tests differ by the five options set below. They are the same as for *
* OrigenToCRSMatrix *
* flux Neutron flux *
* sort_nuclides Should the nuclides be sorted? Logical. *
* is_adjoint Make the matrix for adjoint calculation rather than *
* a forward calculation? (Note that only the source term *
* is affected because the matrix will be transposed by *
* the solver.) Logical *
* source_term The source term for the calculation (is merged to the *
* matrix). *
* *
*****************************************************************************/
/* TEST 1. Flux Sort Adjoint Source */
/* NO N0 NO NO */
{
flux = 0.0e14;
sort_nuclides = 0;
is_adjoint = 0;
source_order = -1;
source_term = nullptr;
}
/* TEST 2. Flux Sort Adjoint Source */
/* YES N0 NO NO */
TEST_F( tstOrigenToCRSMatrix, ActivationNoSort )
{
flux = 3.0e14;
sort_nuclides = 0;
is_adjoint = 0;
source_order = -1;
source_term = nullptr;
}
/* TEST 3. Flux Sort Adjoint Source */
/* YES YES NO NO */
TEST_F( tstOrigenToCRSMatrix, ActivationWithSort )
{
flux = 3.0e14;
sort_nuclides = 1;
is_adjoint = 0;
source_order = -1;
source_term = nullptr;
}
/* TEST 4. Flux Sort Adjoint Source */
/* YES YES YES NO */
TEST_F( tstOrigenToCRSMatrix, AdjointActivationWithSort )
{
flux = 3.0e14;
sort_nuclides = 1;
is_adjoint = 1;
source_order = -1;
source_term = nullptr;
}
/* TEST 5. Flux Sort Adjoint Source */
/* YES NO YES NO */
TEST_F( tstOrigenToCRSMatrix, AdjointDecayNoSort )
{
flux = 0.0e14;
sort_nuclides = 1;
is_adjoint = 1;
source_order = -1;
source_term = nullptr;
}
/* TEST 6. Flux Sort Adjoint Source */
/* YES YES NO YES+ */
TEST_F( tstOrigenToCRSMatrix, ActivationWithSource1 )
{
flux = 3.0e14;
sort_nuclides = 1;
is_adjoint = 0;
source_order = 0;
source_term = (double**)malloc( itot * sizeof( double* ) );
for( i = 0; i < itot; i++ )
source_term[i] = (double*)calloc( source_order + 1, sizeof( double ) );
for( i = 0; i < itot; i++ )
if( i % 3 != 0 ) source_term[i][0] = 3.14 * i;
}
/* TEST 7. Flux Sort Adjoint Source */
/* YES YES NO YES- */
TEST_F( tstOrigenToCRSMatrix, ActivationWithSource2 )
{
flux = 3.0e14;
sort_nuclides = 1;
is_adjoint = 0;
source_order = 0;
source_term = (double**)malloc( itot * sizeof( double* ) );
for( i = 0; i < itot; i++ )
source_term[i] = (double*)calloc( source_order + 1, sizeof( double ) );
for( i = 0; i < itot; i++ )
if( i % 3 != 0 ) source_term[i][0] = -3.14 * i;
}
/* TEST 8. Flux Sort Adjoint Source */
/* YES YES NO YES+- */
TEST_F( tstOrigenToCRSMatrix, ActivationWithSource3 )
{
flux = 3.0e14;
sort_nuclides = 1;
is_adjoint = 0;
source_order = 0;
source_term = (double**)malloc( itot * sizeof( double* ) );
for( i = 0; i < itot; i++ )
source_term[i] = (double*)calloc( source_order + 1, sizeof( double ) );
for( i = 0; i < itot; i++ )
if( i % 3 != 0 )
source_term[i][0] =
-3.14 * i * pow( -1, i ) * ( 2.5 + pow( -1, i ) );
}
/* TEST 9. Flux Sort Adjoint Source */
/* YES YES YES YES+- */
TEST_F( tstOrigenToCRSMatrix, AdjointActivationWithSource )
{
flux = 3.0e14;
sort_nuclides = 1;
is_adjoint = 1;
source_order = 0;
source_term = (double**)malloc( itot * sizeof( double* ) );
for( i = 0; i < itot; i++ )
source_term[i] = (double*)calloc( source_order + 1, sizeof( double ) );
for( i = 0; i < itot; i++ )
if( i % 3 != 0 )
source_term[i][0] =
-3.14 * i * pow( -1, i ) * ( 2.5 + pow( -1, i ) );
}
/* TEST 10. Flux Sort Adjoint Source */
/* NO NO NO YES+- */
TEST_F( tstOrigenToCRSMatrix, DecayWithSourceNoSort )
{
flux = 0.0e14;
sort_nuclides = 0;
is_adjoint = 0;
source_order = 0;
source_term = (double**)malloc( itot * sizeof( double* ) );
for( i = 0; i < itot; i++ )
source_term[i] = (double*)calloc( source_order + 1, sizeof( double ) );
for( i = 0; i < itot; i++ )
if( i % 3 != 0 )
source_term[i][0] =
-3.14 * i * pow( -1, i ) * ( 2.5 + pow( -1, i ) );
}
/* TEST 11. Flux Sort Adjoint Source */
/* NO YES NO YES+- high order */
TEST_F( tstOrigenToCRSMatrix, Order4Source )
{
flux = 0.0e14;
sort_nuclides = 1;
is_adjoint = 0;
source_order = 4;
source_term = (double**)malloc( itot * sizeof( double* ) );
for( i = 0; i < itot; i++ )
source_term[i] = (double*)calloc( source_order + 1, sizeof( double ) );
int j;
for( i = 0; i < itot; i++ )
for( j = 0; j < source_order + 1; j++ )
if( i * j + 1 % 3 != 0 )
source_term[i][j] =
-3.14 * i * pow( -1, i ) * ( 2.5 + pow( -1, i ) ) +
-2.72 * i * pow( -1, i + j ) * ( 2.5 + pow( -1, i + j ) );
}
/* TEST 12. Flux Sort Adjoint Source */
/* YES YES YES YES+- high order */
TEST_F( tstOrigenToCRSMatrix, Order3SourceAdjoint )
{
flux = 2.0e14;
sort_nuclides = 1;
is_adjoint = 1;
source_order = 3;
source_term = (double**)malloc( itot * sizeof( double* ) );
for( i = 0; i < itot; i++ )
source_term[i] = (double*)calloc( source_order + 1, sizeof( double ) );
int j;
for( i = 0; i < itot; i++ )
for( j = 0; j < source_order + 1; j++ )
if( i * j + 1 % 3 != 0 )
source_term[i][j] =
-3.14 * i * pow( -1, i ) * ( 2.5 + pow( -1, i ) ) +
-2.72 * i * pow( -1, i + j ) * ( 2.5 + pow( -1, i + j ) );
}
//--------//
// tstCRAM2//
//--------//
/******************************************************************************
* Simple (small hand written system) unit tests for kernel_cram() *
* *
* Author: Aarno Isotalo *
* *
*****************************************************************************/
/******************************************************************************
* Basic two nuclide test for forward calculation. *
* *
* This should catch coarse errors (and they will be easier to debug from *
* small system. *
*****************************************************************************/
TEST( tstCRAM2, simple2x2 )
{
const int itot = 2; // number of nuclides
const int non = 1; // number of reactions (non-diag. elements in A)
int non0[itot]; // number of parents for nuclide i
int kd[itot]; // number of decay parents for nuclide i
double n0[itot]; // initial atomic densities
double n[itot]; // final compositions go here
double delta_t; // time step length
double diag[itot]; // diagonal elements of A
double a[non]; // non-diagonal elements of A
int loc[non]; // matrix A parent pointers
double** source_term; // source term
int source_order;
int zero_flux_step; // is the step decay only?
int is_adjoint; // is this adjoint calculation?
int cram_order;
int internal_steps; // number of internal substeps in the cram solver
int remove_negatives; // whether to zero out negative results
double cutoff;
double solution[2];
double lambda;
int i;
// Nuclide 1 decays to buclide 0
non0[0] = 1;
non0[1] = 0;
kd[0] = 1;
kd[1] = 0;
n0[0] = 0;
n0[1] = 1;
n[0] = -1;
n[1] = -1;
diag[0] = 0.0;
diag[1] = -9999;
a[0] = 9999;
loc[0] = 1;
zero_flux_step = 0;
is_adjoint = 0;
internal_steps = 1;
remove_negatives = 1;
cutoff = 0.0;
source_order = 0;
source_term = (double**)malloc( itot * sizeof( double* ) );
for( i = 0; i < itot; i++ )
source_term[i] = (double*)calloc( source_order + 1, sizeof( double ) );
// start tests, only diag[1], a[0], source_term, and delta_t will change
/*** test 1: just the plain decay
* *1111111111111111111111111111111111111111*/
jDebugLine( "*** 2x2 decay only ***" );
lambda = std::log( 2 ) / 1.0e6;
delta_t = 1.0e7;
diag[1] = -lambda;
a[0] = lambda;
solution[0] = n0[1] * ( 1 - std::exp( -lambda * delta_t ) ) + n0[0];
solution[1] = n0[1] * ( std::exp( -lambda * delta_t ) );
cram_order = 16;
n0,
nullptr,
-1,
delta_t,
itot,
non,
non0,
kd,
diag,
a,
loc,
zero_flux_step,
is_adjoint,
cram_order,
internal_steps,
remove_negatives,
cutoff,
nullptr );
for( i = 0; i < itot; i++ )
EXPECT_NEAR( solution[i], n[i], solution[i] * 1e-10 )
<< "discrepancy in case 1 (decay only)";
/*** test 2: Source term only, no decay
* *2222222222222222222222222222222222*/
jDebugLine( "*** 2x2 source term only ***" );
lambda = 0.0;
delta_t = 2.0e6;
source_order = 0;
source_term[0][0] = 1.0e-6;
source_term[1][0] = 3.14e-7;
diag[1] = -lambda;
a[0] = lambda;
solution[0] = n0[0] + source_term[0][0] * delta_t;
solution[1] = n0[1] + source_term[1][0] * delta_t;
cram_order = 16;
n0,
source_term,
source_order,
delta_t,
itot,
non,
non0,
kd,
diag,
a,
loc,
zero_flux_step,
is_adjoint,
cram_order,
internal_steps,
remove_negatives,
cutoff,
nullptr );
for( i = 0; i < itot; i++ )
EXPECT_NEAR( solution[i], n[i], solution[i] * 1e-10 )
<< "discrepancy in case 2 (source only)";
/*** test 3: Decay and source term
* *333333333333333333333333333333333333333*/
jDebugLine( "*** 2x2 source term + decay ***" );
lambda = std::log( 2 ) / 1.0e6;
delta_t = 1.0e6;
source_order = 0;
source_term[0][0] = 2.0e-7;
source_term[1][0] = 1e-6;
diag[1] = -lambda;
a[0] = lambda;
solution[0] = ( n0[1] - 1 / lambda * source_term[1][0] ) *
( 1 - std::exp( -lambda * delta_t ) ) +
n0[0] + ( source_term[0][0] + source_term[1][0] ) * delta_t;
solution[1] = ( n0[1] - 1 / lambda * source_term[1][0] ) *
( std::exp( -lambda * delta_t ) ) +
1 / lambda * source_term[1][0];
cram_order = 16;
n0,
source_term,
source_order,
delta_t,
itot,
non,
non0,
kd,
diag,
a,
loc,
zero_flux_step,
is_adjoint,
cram_order,
internal_steps,
remove_negatives,
cutoff,
nullptr );
for( i = 0; i < itot; i++ )
EXPECT_NEAR( solution[i], n[i], solution[i] * 1e-10 )
<< "discrepancy in case 3 (source+decay)";
/*** test 4: Decay and source term with sort
* *44444444444444444444444444444*/
jDebugLine( "*** 2x2 source term + decay + sort ***" );
int ZAI[2] = {444440, 333330}; // nuclides will be ordered by ascending ZAI
double n2[2];
cram_order = 16;
n0,
source_term,
source_order,
delta_t,
itot,
non,
non0,
kd,
diag,
a,
loc,
zero_flux_step,
is_adjoint,
cram_order,
internal_steps,
remove_negatives,
cutoff,
ZAI );
for( i = 0; i < itot; i++ )
EXPECT_FLOAT_EQ( n[i], n2[i] )
<< "discrepancy in case 4 (source+decay+sort)";
/*** test 5: Decay and source term with sort
* *55555555555555555555555555555*/
jDebugLine( "*** 2x2 source term + decay + sort + internal steps ***" );
internal_steps = 4;
cram_order = 16;
n0,
source_term,
source_order,
delta_t,
itot,
non,
non0,
kd,
diag,
a,
loc,
zero_flux_step,
is_adjoint,
cram_order,
internal_steps,
remove_negatives,
cutoff,
ZAI );
for( i = 0; i < itot; i++ )
EXPECT_FLOAT_EQ( n[i], n2[i] )
<< "discrepancy in case 5 (source+decay+sort+internal steps)";
// free memory
for( i = 0; i < itot; i++ ) free( source_term[i] );
free( source_term );
}
TEST( tstCRAMcutoff, simple2x2 )
{
const int itot = 2; // number of nuclides
const int non = 1; // number of reactions (non-diag. elements in A)
int non0[itot]; // number of parents for nuclide i
int kd[itot]; // number of decay parents for nuclide i
double n0[itot]; // initial atomic densities
double n[itot]; // final compositions go here
double delta_t; // time step length
double diag[itot]; // diagonal elements of A
double a[non]; // non-diagonal elements of A
int loc[non]; // matrix A parent pointers
int zero_flux_step; // is the step decay only?
int is_adjoint; // is this adjoint calculation?
int cram_order;
int internal_steps; // number of internal substeps in the cram solver
int remove_negatives; // whether to zero out negative results
double cutoff;
// 2x2 no reactions
non0[0] = 0;
non0[1] = 0;
kd[0] = 0;
kd[1] = 0;
n0[0] = 0;
n0[1] = 1;
n[0] = -1;
n[1] = -1;
diag[0] = 0.0;
diag[1] = 0.0;
a[0] = 0.0;
loc[0] = 0;
delta_t = 1e6;
zero_flux_step = 0;
is_adjoint = 0;
internal_steps = 1;
cram_order = 16;
/*** test 1: do nothing
* *11111111111111111111111111111111111111111111111111*/
n0[0] = -1;
n0[1] = 1;
remove_negatives = 0;
cutoff = 0.0;
n0,
nullptr,
-1,
delta_t,
itot,
non,
non0,
kd,
diag,
a,
loc,
zero_flux_step,
is_adjoint,
cram_order,
internal_steps,
remove_negatives,
cutoff,
nullptr );
EXPECT_FLOAT_EQ( n[0], -1 );
EXPECT_FLOAT_EQ( n[1], 1 );
/*** test 2: remove the negatve
* *222222222222222222222222222222222222222222*/
n0[0] = -1;
n0[1] = 1;
remove_negatives = 1;
cutoff = 0.0;
n0,
nullptr,
-1,
delta_t,
itot,
non,
non0,
kd,
diag,
a,
loc,
zero_flux_step,
is_adjoint,
cram_order,
internal_steps,
remove_negatives,
cutoff,
nullptr );
EXPECT_FLOAT_EQ( n[0], 0 );
EXPECT_FLOAT_EQ( n[1], 1 );
/*** test 3: remove the negatve
* *333333333333333333333333333333333333333333*/
n0[0] = -1;
n0[1] = 1;
remove_negatives = 2;
cutoff = 0.0;
n0,
nullptr,
-1,
delta_t,
itot,
non,
non0,
kd,
diag,
a,
loc,
zero_flux_step,
is_adjoint,
cram_order,
internal_steps,
remove_negatives,
cutoff,
nullptr );
EXPECT_FLOAT_EQ( n[0], 0 );
EXPECT_FLOAT_EQ( n[1], 1 );
/*** test 4: Do not remove the negative in adjoint
* *44444444444444444444444*/
is_adjoint = 1;
n0[0] = -1;
n0[1] = 1;
remove_negatives = 2;
cutoff = 0.0;
n0,
nullptr,
-1,
delta_t,
itot,
non,
non0,
kd,
diag,
a,
loc,
zero_flux_step,
is_adjoint,
cram_order,
internal_steps,
remove_negatives,
cutoff,
nullptr );
EXPECT_FLOAT_EQ( n[0], -1 );
EXPECT_FLOAT_EQ( n[1], 1 );
/*** test 5: apply cutoff
* *555555555555555555555555555555555555555555555555*/
is_adjoint = 0;
n0[0] = -0.9;
n0[1] = 1;
remove_negatives = 0;
cutoff = 0.5;
n0,
nullptr,
-1,
delta_t,
itot,
non,
non0,
kd,
diag,
a,
loc,
zero_flux_step,
is_adjoint,
cram_order,
internal_steps,
remove_negatives,
cutoff,
nullptr );
EXPECT_FLOAT_EQ( n[0], 0 );
EXPECT_FLOAT_EQ( n[1], 1 );
/*** test 6: apply cutoff
* *666666666666666666666666666666666666666666666666*/
is_adjoint = 0;
n0[0] = -1;
n0[1] = 0.1;
remove_negatives = 0;
cutoff = 0.2;
n0,
nullptr,
-1,
delta_t,
itot,
non,
non0,
kd,
diag,
a,
loc,
zero_flux_step,
is_adjoint,
cram_order,
internal_steps,
remove_negatives,
cutoff,
nullptr );
EXPECT_FLOAT_EQ( n[0], -1 );
EXPECT_FLOAT_EQ( n[1], 0 );
}
//--------//
// tstCRAM3//
//--------//
/******************************************************************************
* Full system unit test for kernel_cram() *
* *
* Author: Aarno Isotalo *
* *
* Fresh fuel 100d depletion with and without source term. *
* Results of CRAM calculation are compared to stored values calculated with *
* external high precision TTA solver. *
* *
*****************************************************************************/
//#include "Origen/Manager/Wrapper/tests/pwr.rev01.fresh.35e13.100d.expm.h"
//#include "Origen/Manager/Wrapper/tests/pwr.rev01.fresh+src.35e13.100d.expm.h"
TEST_F( tstCRAM, FreshFuelDepletion )
{
// fold library
flux = 3.5e14;
trx->fold_flux( flux, DLdiag, DLa );
Vec_Dbl diag( DLdiag.begin(), DLdiag.end() );
Vec_Dbl a( DLa.begin(), DLa.end() );
// Set initial composition and step length
Vec_Dbl n( itot ), n0( itot );
n0[trx->find_nuclide_guess( 922350 )] = 0.05;
n0[trx->find_nuclide_guess( 922380 )] = 0.95;
double delta_t = 100 * 60 * 60 * 24;
int source_order = -1;
double** source_term = nullptr;
// Solve
int zero_flux_step = 0, is_adjoint = 0, cram_order = 16, internal_steps = 1;
int remove_negatives = 0;
double cutoff = 0.0;
kernel_cram( &n[0],
&n0[0],
source_term,
source_order,
delta_t,
itot,
non,
&non0[0],
&kd[0],
&diag[0],
&a[0],
&loc[0],
zero_flux_step,
is_adjoint,
cram_order,
internal_steps,
remove_negatives,
cutoff,
&ZAI[0] );
// get reference results
// human-readable illustration of the overall performance
PrintErrorTable( itot, &n[0], &n_ref[0] );
// check that there are not too many bad errors
CheckErrors( itot, &n[0], &n_ref[0], 1e-18, 1e-8, &ZAI[0] );
}
TEST_F( tstCRAM, FreshFuelDepletionWithSource )
{
// fold library
flux = 3.5e14;
trx->fold_flux( flux, DLdiag, DLa );
Vec_Dbl diag( DLdiag.begin(), DLdiag.end() );
Vec_Dbl a( DLa.begin(), DLa.end() );
// Set initial composition, source term and step length
Vec_Dbl n( itot ), n0( itot );
n0[trx->find_nuclide_guess( 922350 )] = 0.05;
n0[trx->find_nuclide_guess( 922380 )] = 0.95;
double delta_t = 100 * 60 * 60 * 24;
int source_order = 0;
double** source_term = (double**)malloc( itot * sizeof( double* ) );
for( i = 0; i < itot; i++ )
source_term[i] = (double*)calloc( source_order + 1, sizeof( double ) );
source_term[trx->find_nuclide_guess( 922350 )][0] = 0.05e-7;
source_term[trx->find_nuclide_guess( 922380 )][0] = 0.20e-7;
source_term[trx->find_nuclide_guess( 932390 )][0] = 0.05e-7;
source_term[trx->find_nuclide( 1, 350790 )][0] = 1e-7; // stable
source_term[trx->find_nuclide( 1, 350810 )][0] = 1e-20; // stable
source_term[trx->find_nuclide( 1, 350780 )][0] = 1e-7; // short-lived
source_term[trx->find_nuclide( 1, 350800 )][0] = 1e-20; // short-lived
// Solve
int zero_flux_step = 0, is_adjoint = 0, cram_order = 16, internal_steps = 1;
int remove_negatives = 0;
double cutoff = 0.0;
kernel_cram( &n[0],
&n0[0],
source_term,
source_order,
delta_t,
itot,
non,
&non0[0],
&kd[0],
&diag[0],
&a[0],
&loc[0],
zero_flux_step,
is_adjoint,
cram_order,
internal_steps,
remove_negatives,
cutoff,
&ZAI[0] );
// get reference results
// human-readable illustration of the overall performance
PrintErrorTable( itot, &n[0], &n_ref[0] );
// check that there are not too many bad errors
CheckErrors( itot, &n[0], &n_ref[0], 1e-17, 1e-8, &ZAI[0] );
// free
for( i = 0; i < itot; i++ ) free( source_term[i] );
free( source_term );
}
{
int itot = 2226;
// Composition calculated with arbitrary precision generalized TTA
// Precision: 1000 bits, Cutoff: 1.00E-60, delta t: 8.640000000000000E+06
double ref_results[2226] = {0};
ref_results[903] = 1.289413333350595E-31; // 20030
ref_results[904] = 1.114685377427754E-08; // 20040
ref_results[909] = 1.975242823890471E-32; // 802060
ref_results[910] = 3.119284043931009E-38; // 812030
ref_results[911] = 1.769046355192181E-31; // 812050
ref_results[912] = 4.411746568933256E-31; // 812060
ref_results[913] = 5.360623447659138E-24; // 812070
ref_results[914] = 7.846235035504605E-22; // 812080
ref_results[915] = 4.372346840135368E-26; // 812090
ref_results[916] = 5.049110572107637E-32; // 812100
ref_results[917] = 7.503741584797137E-39; // 822030
ref_results[918] = 1.191533326996485E-32; // 822040
ref_results[919] = 5.840528707139000E-29; // 822050
ref_results[920] = 1.124227308482402E-22; // 822060
ref_results[921] = 2.886826001759480E-20; // 822070
ref_results[922] = 4.102847540274480E-30; // 822071
ref_results[923] = 1.629662090684707E-17; // 822080
ref_results[924] = 1.842517582231043E-22; // 822090
ref_results[925] = 8.459449361533444E-19; // 822100
ref_results[926] = 4.068981504505060E-23; // 822110
ref_results[927] = 4.574606576650171E-19; // 822120
ref_results[928] = 4.701868092081101E-27; // 822140
ref_results[929] = 1.175711452616627E-35; // 832060
ref_results[930] = 6.843574861050098E-30; // 832070
ref_results[931] = 1.277226509798161E-26; // 832080
ref_results[932] = 1.782989483471236E-20; // 832090
ref_results[933] = 2.753402909754046E-26; // 832101
ref_results[934] = 4.255851113077440E-22; // 832100
ref_results[935] = 2.411943580677945E-24; // 832110
ref_results[936] = 4.330260567044869E-20; // 832120
ref_results[938] = 4.335659381301911E-23; // 832130
ref_results[939] = 3.489859922974895E-27; // 832140
ref_results[940] = 1.179546996457253E-38; // 842070
ref_results[941] = 7.181240936602589E-31; // 842080
ref_results[942] = 1.578748336586222E-27; // 842090
ref_results[943] = 1.229059300680844E-21; // 842100
ref_results[944] = 4.525970848421623E-34; // 842111
ref_results[945] = 2.675170694154164E-29; // 842110
ref_results[946] = 2.282909534673637E-30; // 842120
ref_results[947] = 6.518130378671663E-32; // 842130
ref_results[948] = 6.788281712073143E-29; // 842140
ref_results[949] = 3.346528429881704E-29; // 842150
ref_results[950] = 1.768514317211708E-24; // 842160
ref_results[951] = 5.444330270369678E-28; // 842180
ref_results[952] = 1.274841590841332E-36; // 852160
ref_results[953] = 5.129504069154262E-28; // 852170
ref_results[954] = 8.780791682154450E-34; // 852180
ref_results[955] = 6.745797660317088E-40; // 862160
ref_results[956] = 6.002949709700046E-34; // 862170
ref_results[957] = 1.446063246666164E-26; // 862180
ref_results[958] = 7.440905021928605E-26; // 862190
ref_results[959] = 6.781338280014316E-22; // 862200
ref_results[960] = 9.670024657314855E-25; // 862220
ref_results[961] = 1.168444786878153E-31; // 872200
ref_results[962] = 4.669162489019554E-24; // 872210
ref_results[963] = 4.695170231284298E-29; // 872220
ref_results[964] = 8.447122081664655E-25; // 872230
ref_results[965] = 2.698318882447466E-37; // 882200
ref_results[966] = 1.570011532364031E-23; // 882220
ref_results[967] = 1.855622686116179E-20; // 882230
ref_results[968] = 3.856977451997237E-18; // 882240
ref_results[969] = 3.325664176079513E-20; // 882250
ref_results[970] = 1.729892452849364E-19; // 882260
ref_results[971] = 2.388094601009840E-24; // 882270
ref_results[972] = 6.069593577785614E-21; // 882280
ref_results[973] = 4.690029306328848E-28; // 892240
ref_results[974] = 1.372378426862557E-20; // 892250
ref_results[975] = 9.714472762685702E-23; // 892260
ref_results[976] = 3.187197886161638E-17; // 892270
ref_results[977] = 2.717442489182068E-20; // 892280
ref_results[978] = 7.578596954711658E-22; // 902260
ref_results[979] = 4.336624500602701E-20; // 902270
ref_results[980] = 8.668231017329401E-16; // 902280
ref_results[981] = 2.191631035072743E-16; // 902290
ref_results[982] = 2.025169385988120E-13; // 902300
ref_results[983] = 1.825991729865768E-13; // 902310
ref_results[984] = 8.864827596811525E-10; // 902320
ref_results[985] = 1.727616319481263E-15; // 902330
ref_results[986] = 1.317864918826315E-11; // 902340
ref_results[987] = 1.470071067711534E-28; // 912280
ref_results[988] = 6.196261767189902E-21; // 912290
ref_results[989] = 1.097710845719679E-17; // 912300
ref_results[990] = 1.154012216181214E-11; // 912310
ref_results[991] = 3.322119381874720E-14; // 912320
ref_results[992] = 2.409945761711268E-12; // 912330
ref_results[993] = 1.059624689728095E-18; // 912341
ref_results[994] = 1.529141411723613E-13; // 912340
ref_results[995] = 1.391949938076217E-14; // 912350
ref_results[996] = 7.414957117477090E-19; // 922300
ref_results[997] = 5.490280995711177E-19; // 922310
ref_results[998] = 1.053762729017430E-12; // 922320
ref_results[999] = 3.312720331348733E-10; // 922330
ref_results[1000] = 5.201482786761180E-07; // 922340
ref_results[1001] = 4.398448845147625E-02; // 922350
ref_results[1002] = 1.147294173928603E-03; // 922360
ref_results[1003] = 3.856912028193474E-06; // 922370
ref_results[1004] = 9.472197276616982E-01; // 922380
ref_results[1005] = 5.843719943423227E-07; // 922390
ref_results[1006] = 2.703193217593481E-24; // 922400
ref_results[1007] = 8.539577291594151E-28; // 922410
ref_results[1008] = 3.612790685645008E-21; // 932340
ref_results[1009] = 2.683064800236564E-14; // 932350
ref_results[1010] = 7.664697223487101E-13; // 932361
ref_results[1011] = 4.390633184066163E-12; // 932360
ref_results[1012] = 2.367617551701201E-05; // 932370
ref_results[1013] = 6.399436739879316E-08; // 932380
ref_results[1014] = 8.440515074602611E-05; // 932390
ref_results[1015] = 1.851988317097531E-10; // 932401
ref_results[1016] = 9.324827266894826E-10; // 932400
ref_results[1017] = 4.250420933383414E-18; // 932410
ref_results[1018] = 1.000993671580384E-11; // 942360
ref_results[1019] = 8.511248929139670E-20; // 942371
ref_results[1020] = 2.991775095570651E-12; // 942370
ref_results[1021] = 7.781720101913515E-07; // 942380
ref_results[1022] = 1.947522416368971E-03; // 942390
ref_results[1023] = 1.371598650371345E-04; // 942400
ref_results[1024] = 3.009500828108400E-05; // 942410
ref_results[1025] = 7.981303455856855E-07; // 942420
ref_results[1026] = 2.400580282699711E-10; // 942430
ref_results[1027] = 1.413991470889068E-13; // 942440
ref_results[1028] = 7.581461825409339E-18; // 942450
ref_results[1029] = 3.648574342983102E-34; // 942460
ref_results[1030] = 1.138522493639466E-36; // 942470
ref_results[1031] = 2.781343142545969E-18; // 952390
ref_results[1032] = 2.846111642993406E-15; // 952400
ref_results[1033] = 9.890650304699397E-08; // 952410
ref_results[1034] = 4.870002080081151E-10; // 952421
ref_results[1035] = 2.533695077501686E-10; // 952420
ref_results[1036] = 1.619510292024055E-08; // 952430
ref_results[1037] = 6.023941177905897E-13; // 952441
ref_results[1038] = 9.115352952601548E-13; // 952440
ref_results[1039] = 1.469435608307166E-18; // 952450
ref_results[1040] = 1.984792614213054E-27; // 952460
ref_results[1041] = 1.897719988702819E-30; // 952470
ref_results[1042] = 1.618131563989801E-19; // 962400
ref_results[1043] = 8.754954168156155E-17; // 962410
ref_results[1044] = 4.168711487452012E-09; // 962420
ref_results[1045] = 8.267250217371817E-12; // 962430
ref_results[1046] = 4.135541292172713E-10; // 962440
ref_results[1047] = 3.017818698365085E-12; // 962450
ref_results[1048] = 1.767094842442320E-14; // 962460
ref_results[1049] = 1.675144495704011E-17; // 962470
ref_results[1050] = 8.228910974537939E-20; // 962480
ref_results[1051] = 1.055488268192281E-24; // 962490
ref_results[1052] = 1.567575426724835E-27; // 962500
ref_results[1053] = 3.697577932821355E-32; // 962510
ref_results[1054] = 1.915473470187938E-40; // 972450
ref_results[1055] = 9.227466223779071E-38; // 972460
ref_results[1056] = 3.766218769809954E-30; // 972470
ref_results[1057] = 1.539279102758363E-28; // 972480
ref_results[1058] = 1.029658427747336E-29; // 972481
ref_results[1059] = 1.364913385256192E-22; // 972490
ref_results[1060] = 2.213412291415883E-25; // 972500
ref_results[1061] = 6.458253873593317E-30; // 972510
ref_results[1062] = 4.585157776331389E-39; // 982460
ref_results[1063] = 4.462506037491542E-29; // 982480
ref_results[1064] = 2.297375108277857E-24; // 982490
ref_results[1065] = 8.726074303527182E-24; // 982500
ref_results[1066] = 7.019491843299111E-25; // 982510
ref_results[1067] = 2.723936804448019E-26; // 982520
ref_results[1068] = 1.011556828912290E-29; // 982530
ref_results[1069] = 2.864616041587516E-33; // 982540
ref_results[1070] = 2.075974786931365E-39; // 982550
ref_results[1071] = 1.000046996095327E-39; // 992510
ref_results[1072] = 4.026914500173846E-37; // 992520
ref_results[1073] = 1.928923386359500E-30; // 992530
ref_results[1074] = 1.784892644945483E-32; // 992541
ref_results[1075] = 2.696962739741822E-33; // 992540
ref_results[1076] = 3.479680070174173E-34; // 992550
ref_results[1077] = 5.576583289911900E-07; // 10030
ref_results[1078] = 3.160765055389171E-09; // 20030
ref_results[1079] = 1.022295785225320E-05; // 20040
ref_results[1080] = 2.523993305724020E-20; // 260650
ref_results[1081] = 2.329840207169351E-20; // 270650
ref_results[1082] = 1.759690813666635E-16; // 280650
ref_results[1083] = 1.163876003642701E-13; // 290650
ref_results[1084] = 1.258776441997376E-23; // 240660
ref_results[1085] = 1.142078500174312E-20; // 250660
ref_results[1086] = 1.167554623291500E-18; // 260660
ref_results[1087] = 1.266058897482786E-18; // 270660
ref_results[1088] = 1.156459838225993E-12; // 280660
ref_results[1089] = 1.809277186043200E-15; // 290660
ref_results[1090] = 3.379448571631932E-11; // 300660
ref_results[1091] = 1.464324979844949E-26; // 310660
ref_results[1093] = 1.769249275834514E-23; // 240670
ref_results[1094] = 6.907228743411293E-21; // 250670
ref_results[1095] = 2.292982938472913E-18; // 260670
ref_results[1096] = 6.454077373216302E-18; // 270670
ref_results[1097] = 3.848250085465870E-16; // 280670
ref_results[1098] = 4.096723715489322E-12; // 290670
ref_results[1099] = 1.059598522553247E-10; // 300670
ref_results[1100] = 1.674412056119005E-23; // 310670
ref_results[1101] = 5.830874639269308E-40; // 320670
ref_results[1102] = 8.890441867894816E-22; // 250680
ref_results[1103] = 5.627683103414986E-19; // 260680
ref_results[1104] = 3.684995344924836E-18; // 270680
ref_results[1105] = 9.132763865020193E-16; // 280680
ref_results[1106] = 1.001053385406242E-15; // 290680
ref_results[1107] = 1.384029435780341E-16; // 290681
ref_results[1108] = 1.914863316461289E-10; // 300680
ref_results[1109] = 8.941810912778607E-20; // 310680
ref_results[1110] = 6.335175289224201E-28; // 320680
ref_results[1111] = 6.061072108569853E-23; // 250690
ref_results[1112] = 1.178685348239501E-19; // 260690
ref_results[1113] = 3.855806752415301E-18; // 270690
ref_results[1114] = 5.686223710778439E-16; // 280690
ref_results[1115] = 9.484281647134482E-15; // 290690
ref_results[1116] = 1.882247323947869E-13; // 300690
ref_results[1117] = 6.100046770109298E-15; // 300691
ref_results[1118] = 3.214557752744619E-10; // 310690
ref_results[1119] = 7.726217929170971E-22; // 320690
ref_results[1121] = 2.863644080583788E-20; // 260700
ref_results[1122] = 1.435781817693384E-18; // 270700
ref_results[1123] = 4.731867126346472E-16; // 280700
ref_results[1124] = 2.768152556825988E-15; // 290700
ref_results[1125] = 2.693368313102087E-15; // 290701
ref_results[1126] = 5.964988192008189E-10; // 300700
ref_results[1127] = 1.436043936563913E-16; // 310700
ref_results[1128] = 3.406867178215920E-13; // 320700
ref_results[1129] = 6.206463317692470E-21; // 260710
ref_results[1130] = 5.130418086968351E-19; // 270710
ref_results[1131] = 2.388932801355632E-16; // 280710
ref_results[1132] = 3.513259966507562E-15; // 290710
ref_results[1133] = 2.684562310784519E-14; // 300710
ref_results[1134] = 1.715586922265665E-13; // 300711
ref_results[1135] = 1.087709295573475E-09; // 310710
ref_results[1136] = 3.082667750870258E-16; // 320710
ref_results[1137] = 2.197178911514839E-24; // 320711
ref_results[1138] = 1.352306828241962E-25; // 330710
ref_results[1139] = 7.045998294227466E-22; // 260720
ref_results[1140] = 1.522388842349131E-19; // 270720
ref_results[1141] = 1.813736883634199E-16; // 280720
ref_results[1142] = 2.314994517311014E-15; // 290720
ref_results[1143] = 7.899636892917843E-11; // 300720
ref_results[1144] = 2.410892070371506E-11; // 310720
ref_results[1145] = 2.506638412680488E-09; // 320720
ref_results[1146] = 1.517201076814259E-19; // 330720
ref_results[1147] = 4.377774694106214E-32; // 340720
ref_results[1148] = 4.005030343627666E-20; // 270730
ref_results[1149] = 8.826809923505126E-17; // 280730
ref_results[1150] = 3.076285217300191E-15; // 290730
ref_results[1151] = 3.163320693398405E-14; // 300730
ref_results[1152] = 2.415646004177120E-11; // 310730
ref_results[1153] = 7.828675939834980E-09; // 320730
ref_results[1154] = 4.828729431868050E-17; // 320731
ref_results[1155] = 3.471267269417247E-16; // 330730
ref_results[1156] = 1.241531035529157E-24; // 340730
ref_results[1157] = 7.165914739521543E-26; // 340731
ref_results[1158] = 5.378907101408812E-21; // 270740
ref_results[1159] = 3.923013325449280E-17; // 280740
ref_results[1160] = 1.364777536730576E-15; // 290740
ref_results[1161] = 3.349751690747423E-13; // 300740
ref_results[1162] = 1.807387280042327E-12; // 310740
ref_results[1163] = 1.221632318475947E-15; // 310741
ref_results[1164] = 2.192728559328698E-08; // 320740
ref_results[1165] = 1.290085340432182E-14; // 330740
ref_results[1166] = 7.308926397933175E-15; // 340740
ref_results[1167] = 7.490193958264842E-22; // 270750
ref_results[1168] = 1.194173037200962E-17; // 280750
ref_results[1169] = 1.284085224784637E-15; // 290750
ref_results[1170] = 8.335070007374982E-14; // 300750
ref_results[1171] = 1.303416632910618E-12; // 310750
ref_results[1172] = 5.188048673637290E-11; // 320750
ref_results[1173] = 4.190097566229245E-15; // 320751
ref_results[1174] = 6.188780232935578E-08; // 330750
ref_results[1175] = 3.774805346021773E-26; // 330751
ref_results[1176] = 3.423108398388695E-16; // 340750
ref_results[1177] = 1.319088312460665E-30; // 350750
ref_results[1178] = 1.440709660956530E-18; // 280760
ref_results[1179] = 5.213488719119950E-16; // 290760
ref_results[1180] = 9.904094903759459E-14; // 300760
ref_results[1181] = 8.985217310651888E-13; // 310760
ref_results[1182] = 1.761550925233008E-07; // 320760
ref_results[1183] = 7.299250844003889E-12; // 330760
ref_results[1184] = 2.317534994871403E-10; // 340760
ref_results[1185] = 1.179468280583296E-19; // 280770
ref_results[1186] = 2.073838620701257E-16; // 290770
ref_results[1187] = 5.593803270096000E-14; // 300770
ref_results[1188] = 8.452608289933483E-13; // 310770
ref_results[1189] = 2.903641566774715E-09; // 320770
ref_results[1190] = 5.570943742706420E-14; // 320771
ref_results[1191] = 1.012080897843818E-08; // 330770
ref_results[1192] = 4.235224474406358E-07; // 340770
ref_results[1193] = 4.188926090844035E-15; // 340771
ref_results[1194] = 6.125732702434523E-18; // 350770
ref_results[1195] = 6.093643253988335E-21; // 350771
ref_results[1196] = 3.862872184181587E-29; // 360770
ref_results[1197] = 1.644255516680310E-20; // 280780
ref_results[1198] = 4.433700905227137E-17; // 290780
ref_results[1199] = 4.387637543768939E-14; // 300780
ref_results[1200] = 6.057511903346982E-13; // 310780
ref_results[1201] = 9.804871822975550E-10; // 320780
ref_results[1202] = 1.021292657361155E-09; // 330780
ref_results[1203] = 1.137564016277277E-06; // 340780
ref_results[1204] = 1.254772766280885E-18; // 350780
ref_results[1205] = 1.022905300577765E-18; // 360780
ref_results[1206] = 3.002984718017107E-18; // 290790
ref_results[1207] = 1.428335174202205E-14; // 300790
ref_results[1208] = 4.586844148075064E-13; // 310790
ref_results[1209] = 5.188841503692045E-12; // 320790
ref_results[1210] = 4.182088903212072E-12; // 320791
ref_results[1211] = 2.186276666405994E-10; // 330790
ref_results[1212] = 2.436804677897995E-06; // 340790
ref_results[1213] = 8.944365015130182E-11; // 340791
ref_results[1214] = 1.280151182297880E-09; // 350790
ref_results[1215] = 9.038189630853045E-19; // 350791
ref_results[1216] = 2.311594404954733E-18; // 360790
ref_results[1217] = 4.668424360078564E-22; // 360791
ref_results[1218] = 3.148787570912718E-42; // 370790
ref_results[1219] = 5.192799778574682E-20; // 290800
ref_results[1220] = 1.326521171541104E-15; // 300800
ref_results[1221] = 1.745755498963082E-13; // 310800
ref_results[1222] = 2.817114536919496E-11; // 320800
ref_results[1223] = 1.658526786705665E-11; // 330800
ref_results[1224] = 6.720110211514579E-06; // 340800
ref_results[1225] = 6.214533565961179E-15; // 350800
ref_results[1226] = 4.860877475230331E-14; // 350801
ref_results[1227] = 1.984616560665750E-11; // 360800
ref_results[1228] = 5.125822096894110E-17; // 300810
ref_results[1229] = 8.708017334769487E-14; // 310810
ref_results[1230] = 8.493576683952394E-12; // 320810
ref_results[1232] = 5.617500755749711E-11; // 330810
ref_results[1233] = 1.959690322411051E-09; // 340810
ref_results[1234] = 2.861748485397807E-10; // 340811
ref_results[1235] = 1.069621353641137E-05; // 350810
ref_results[1236] = 7.975861570359676E-13; // 360810
ref_results[1237] = 5.270286746549676E-19; // 360811
ref_results[1238] = 1.032922193414005E-19; // 370810
ref_results[1239] = 7.925825050479937E-18; // 300820
ref_results[1240] = 3.157595803065210E-14; // 310820
ref_results[1241] = 4.964020486903455E-12; // 320820
ref_results[1242] = 4.082301633325038E-11; // 330820
ref_results[1243] = 3.866993463830705E-12; // 330821
ref_results[1244] = 1.707067988147034E-05; // 340820
ref_results[1245] = 1.421513090798731E-09; // 350820
ref_results[1246] = 3.529708810110858E-12; // 350821
ref_results[1247] = 3.506201841229247E-08; // 360820
ref_results[1248] = 2.038788726255063E-19; // 300830
ref_results[1249] = 1.015711942656537E-15; // 310830
ref_results[1250] = 9.024291773680972E-13; // 320830
ref_results[1251] = 3.947288145038215E-11; // 330830
ref_results[1252] = 5.575768113229122E-09; // 340830
ref_results[1253] = 2.048194357802500E-11; // 340831
ref_results[1254] = 3.993993965349669E-08; // 350830
ref_results[1255] = 2.781884106669644E-05; // 360830
ref_results[1256] = 3.005174061507221E-08; // 360831
ref_results[1257] = 1.185646974119162E-13; // 370830
ref_results[1258] = 1.226435018452470E-19; // 380830
ref_results[1259] = 7.086193245945295E-15; // 310840
ref_results[1260] = 1.988482800971073E-13; // 320840
ref_results[1261] = 6.260775369236798E-12; // 330840
ref_results[1262] = 1.480188724095136E-09; // 340840
ref_results[1263] = 1.550198252004494E-08; // 350840
ref_results[1264] = 6.304085462856284E-11; // 350841
ref_results[1265] = 5.201618500974560E-05; // 360840
ref_results[1266] = 3.943882824982693E-12; // 370840
ref_results[1267] = 1.310646567397811E-13; // 380840
ref_results[1268] = 2.276670369677421E-18; // 310850
ref_results[1269] = 1.561403139311479E-14; // 320850
ref_results[1270] = 2.880434654120349E-12; // 330850
ref_results[1271] = 3.024588376544177E-10; // 340850
ref_results[1272] = 1.998273442420862E-09; // 350850
ref_results[1273] = 1.865866568142667E-05; // 360850
ref_results[1274] = 1.786483446972517E-07; // 360851
ref_results[1275] = 5.429505381064350E-05; // 370850
ref_results[1276] = 2.461271881165131E-14; // 380850
ref_results[1277] = 2.293786067511706E-17; // 380851
ref_results[1278] = 6.594631244203034E-27; // 390850
ref_results[1279] = 7.205255939978872E-18; // 310860
ref_results[1280] = 4.008393458651717E-13; // 320860
ref_results[1281] = 4.436891959394904E-12; // 330860
ref_results[1282] = 1.569520017049527E-10; // 340860
ref_results[1283] = 7.830887162065178E-10; // 350860
ref_results[1284] = 9.568407219600110E-05; // 360860
ref_results[1285] = 9.146850706905796E-09; // 370860
ref_results[1286] = 6.189641633432070E-14; // 370861
ref_results[1287] = 1.411591842700778E-08; // 380860
ref_results[1288] = 2.329151313852818E-15; // 320870
ref_results[1289] = 2.347995626044043E-13; // 330870
ref_results[1290] = 3.645397235495379E-11; // 340870
ref_results[1291] = 9.540298327482027E-10; // 350870
ref_results[1292] = 9.811970001940632E-08; // 360870
ref_results[1293] = 1.336049288245562E-04; // 370870
ref_results[1294] = 1.771519255924674E-10; // 380870
ref_results[1295] = 9.923118735869960E-14; // 380871
ref_results[1296] = 7.557100505315870E-16; // 390870
ref_results[1297] = 3.297675319044714E-20; // 390871
ref_results[1298] = 1.918126200721351E-27; // 400870
ref_results[1299] = 2.696857920929928E-17; // 320880
ref_results[1300] = 1.052705894844915E-13; // 330880
ref_results[1301] = 4.680870611169434E-12; // 340880
ref_results[1302] = 2.363027368028078E-10; // 350880
ref_results[1303] = 2.952058575854239E-07; // 360880
ref_results[1304] = 3.104008046654228E-08; // 370880
ref_results[1305] = 1.811193965527167E-04; // 380880
ref_results[1306] = 7.775355509539386E-12; // 390880
ref_results[1307] = 1.072310773221881E-17; // 400880
ref_results[1308] = 7.562119539410719E-20; // 320890
ref_results[1309] = 1.601574256733529E-16; // 330890
ref_results[1310] = 2.172124227906426E-13; // 340890
ref_results[1311] = 4.167944754006958E-11; // 350890
ref_results[1312] = 6.965166618517508E-09; // 360890
ref_results[1313] = 3.518212566607323E-08; // 370890
ref_results[1314] = 1.306749214866201E-04; // 380890
ref_results[1315] = 1.116228298519387E-04; // 390890
ref_results[1316] = 4.531784121161499E-14; // 390891
ref_results[1317] = 4.192815182902267E-15; // 400890
ref_results[1318] = 5.065706322464319E-19; // 400891
ref_results[1319] = 4.375379437838849E-28; // 410890
ref_results[1320] = 2.975485972415902E-18; // 330900
ref_results[1321] = 2.338882876157609E-14; // 340900
ref_results[1322] = 9.854511291750570E-12; // 350900
ref_results[1323] = 1.277169329618547E-09; // 360900
ref_results[1324] = 6.457622580632671E-09; // 370900
ref_results[1325] = 1.548882463058012E-09; // 370901
ref_results[1326] = 2.945272007095901E-04; // 380900
ref_results[1327] = 7.316925328975997E-08; // 390900
ref_results[1328] = 1.810341386284033E-12; // 390901
ref_results[1329] = 9.249244019735198E-07; // 400900
ref_results[1330] = 1.552770734837214E-17; // 400901
ref_results[1331] = 3.902586175039697E-25; // 410900
ref_results[1333] = 4.347741229323595E-19; // 330910
ref_results[1334] = 3.587448724743921E-15; // 340910
ref_results[1335] = 1.112075985044529E-12; // 350910
ref_results[1336] = 2.359943777491911E-10; // 360910
ref_results[1337] = 2.689110436795316E-09; // 370910
ref_results[1338] = 1.677218223477376E-06; // 380910
ref_results[1339] = 1.743542059676207E-04; // 390910
ref_results[1340] = 8.259983542174677E-08; // 390911
ref_results[1341] = 1.243819677386639E-04; // 400910
ref_results[1342] = 2.349278792732425E-16; // 410910
ref_results[1343] = 5.579528755832851E-22; // 410911
ref_results[1344] = 1.403419305147619E-29; // 420910
ref_results[1345] = 1.871875383040139E-20; // 330920
ref_results[1346] = 1.103123697910133E-16; // 340920
ref_results[1347] = 1.061122473339801E-13; // 350920
ref_results[1348] = 2.616044054043274E-11; // 360920
ref_results[1349] = 1.808597252811864E-10; // 370920
ref_results[1350] = 4.779778228187376E-07; // 380920
ref_results[1351] = 6.437099751270353E-07; // 390920
ref_results[1352] = 3.119523067380972E-04; // 400920
ref_results[1353] = 2.175231691508017E-14; // 410920
ref_results[1354] = 2.161734197407871E-18; // 410921
ref_results[1355] = 1.102979350761218E-22; // 420920
ref_results[1356] = 3.100056073960651E-18; // 340930
ref_results[1357] = 5.807303072764650E-15; // 350930
ref_results[1358] = 5.641248750593221E-12; // 360930
ref_results[1359] = 1.759268439465155E-10; // 370930
ref_results[1360] = 2.357346280002829E-08; // 380930
ref_results[1361] = 1.977005756624211E-06; // 390930
ref_results[1362] = 2.709972105652197E-12; // 390931
ref_results[1363] = 3.296321211222746E-04; // 400930
ref_results[1364] = 1.987774418571065E-12; // 410930
ref_results[1365] = 2.023159311768956E-11; // 410931
ref_results[1366] = 9.990352870661267E-17; // 420930
ref_results[1367] = 1.423023810218625E-19; // 420931
ref_results[1368] = 1.032948772506311E-38; // 430930
ref_results[1369] = 1.877780140567414E-19; // 340940
ref_results[1370] = 5.050136730302674E-16; // 350940
ref_results[1371] = 2.119734155536408E-13; // 360940
ref_results[1372] = 3.985714745099121E-11; // 370940
ref_results[1373] = 3.881813960671090E-09; // 380940
ref_results[1374] = 6.192415095730018E-08; // 390940
ref_results[1375] = 3.397302501630795E-04; // 400940
ref_results[1376] = 1.245128832427718E-10; // 410940
ref_results[1377] = 1.002715045832785E-14; // 410941
ref_results[1378] = 4.601750410553075E-11; // 420940
ref_results[1379] = 5.088534330902061E-18; // 350950
ref_results[1380] = 1.289437709606800E-14; // 360950
ref_results[1381] = 2.669005233513463E-12; // 370950
ref_results[1382] = 1.077769305419474E-09; // 380950
ref_results[1383] = 3.410276312108344E-08; // 390950
ref_results[1384] = 2.090839932425650E-04; // 400950
ref_results[1385] = 7.271820763861105E-05; // 410950
ref_results[1386] = 1.236782501833862E-07; // 410951
ref_results[1387] = 6.110351851308733E-05; // 420950
ref_results[1388] = 2.249233733529295E-24; // 430950
ref_results[1389] = 5.664271290055305E-24; // 430951
ref_results[1390] = 3.671467309741257E-36; // 440950
ref_results[1391] = 1.287139885358903E-18; // 350960
ref_results[1392] = 2.448683929016058E-14; // 360960
ref_results[1393] = 4.330707352608562E-13; // 370960
ref_results[1394] = 3.499090490446842E-11; // 380960
ref_results[1395] = 1.851478683045438E-10; // 390960
ref_results[1396] = 1.703081594987083E-10; // 390961
ref_results[1397] = 3.381962139460603E-04; // 400960
ref_results[1398] = 5.678435009542988E-09; // 410960
ref_results[1399] = 4.047338051194836E-07; // 420960
ref_results[1400] = 5.189723800596208E-21; // 430960
ref_results[1401] = 8.100162426471427E-27; // 440960
ref_results[1402] = 1.546046920438084E-20; // 350970
ref_results[1403] = 1.331196148360472E-16; // 360970
ref_results[1404] = 5.834548984442645E-14; // 370970
ref_results[1405] = 6.621756963729504E-12; // 380970
ref_results[1406] = 1.103123702773602E-10; // 390970
ref_results[1407] = 1.625337697105290E-11; // 390971
ref_results[1408] = 3.220941521714594E-06; // 400970
ref_results[1409] = 2.319197605757145E-07; // 410970
ref_results[1410] = 1.713776030794461E-12; // 410971
ref_results[1411] = 3.205640237438936E-04; // 420970
ref_results[1412] = 4.934802728281333E-14; // 430970
ref_results[1413] = 2.012984173601115E-14; // 430971
ref_results[1414] = 2.563945392363147E-21; // 440970
ref_results[1415] = 5.683428146222351E-16; // 360980
ref_results[1416] = 7.667576405999135E-15; // 370980
ref_results[1417] = 4.913663952178140E-12; // 380980
ref_results[1418] = 1.086416545535825E-11; // 390980
ref_results[1419] = 2.050012228156197E-11; // 390981
ref_results[1420] = 1.552463108535379E-09; // 400980
ref_results[1421] = 1.474722256146474E-10; // 410980
ref_results[1422] = 1.019781390848522E-09; // 410981
ref_results[1423] = 3.127731910800103E-04; // 420980
ref_results[1424] = 2.376354386620182E-10; // 430980
ref_results[1425] = 1.214242797761259E-14; // 440980
ref_results[1426] = 3.922210036275715E-19; // 360990
ref_results[1427] = 4.061749726708957E-16; // 370990
ref_results[1428] = 4.047075098291410E-13; // 380990
ref_results[1429] = 2.851816876096917E-11; // 390990
ref_results[1430] = 1.058802784389815E-10; // 400990
ref_results[1431] = 7.629678275615457E-10; // 410990
ref_results[1432] = 6.083117793616898E-10; // 410991
ref_results[1433] = 1.306372116158747E-05; // 420990
ref_results[1434] = 3.125848753170322E-04; // 430990
ref_results[1435] = 1.048255592592031E-06; // 430991
ref_results[1436] = 1.036340067412594E-08; // 440990
ref_results[1437] = 4.036805911317931E-25; // 450990
ref_results[1438] = 1.130616551291561E-29; // 450991
ref_results[1439] = 4.760237546766314E-40; // 460990
ref_results[1440] = 4.567374840507751E-19; // 361000
ref_results[1441] = 1.331867367355975E-14; // 371000
ref_results[1442] = 9.032343489265520E-14; // 381000
ref_results[1443] = 4.711002426878731E-12; // 391000
ref_results[1444] = 3.561929321310449E-10; // 401000
ref_results[1445] = 8.000430014143751E-11; // 411000
ref_results[1446] = 9.472861684779948E-12; // 411001
ref_results[1447] = 3.431151601669167E-04; // 421000
ref_results[1448] = 2.280099107370140E-11; // 431000
ref_results[1449] = 4.163217613553815E-06; // 441000
ref_results[1450] = 1.043050998310643E-18; // 371010
ref_results[1451] = 6.502615047442934E-15; // 381010
ref_results[1452] = 1.302410863597687E-12; // 391010
ref_results[1453] = 6.486699565636304E-11; // 401010
ref_results[1454] = 3.286011679868436E-10; // 411010
ref_results[1455] = 4.194544524071810E-08; // 421010
ref_results[1456] = 4.083660729469075E-08; // 431010
ref_results[1457] = 2.842273632982014E-04; // 441010
ref_results[1458] = 1.803717759651773E-15; // 451010
ref_results[1459] = 3.333950408723158E-17; // 451011
ref_results[1460] = 8.706894116883086E-22; // 461010
ref_results[1461] = 9.165887779952215E-20; // 371020
ref_results[1462] = 2.787127848133255E-16; // 381020
ref_results[1463] = 6.755340355745121E-13; // 391020
ref_results[1464] = 5.423673516841392E-11; // 401020
ref_results[1465] = 3.453669137427541E-11; // 411020
ref_results[1466] = 3.381677129677507E-11; // 411021
ref_results[1467] = 2.781553233448984E-08; // 421020
ref_results[1468] = 2.171610065521088E-10; // 431020
ref_results[1469] = 2.684058789180407E-11; // 431021
ref_results[1470] = 2.445681884027855E-04; // 441020
ref_results[1471] = 2.189294863365100E-11; // 451020
ref_results[1472] = 1.398387235884371E-11; // 451021
ref_results[1473] = 4.433166796716839E-13; // 461020
ref_results[1474] = 6.928122734949642E-18; // 381030
ref_results[1475] = 1.812182919387815E-14; // 391030
ref_results[1476] = 6.827782253596648E-12; // 401030
ref_results[1477] = 2.997083226108888E-11; // 411030
ref_results[1478] = 2.131434008627083E-09; // 421030
ref_results[1479] = 1.757637971753448E-09; // 431030
ref_results[1480] = 8.787915473665206E-05; // 441030
ref_results[1481] = 9.256992743263595E-05; // 451030
ref_results[1482] = 8.610382858806985E-08; // 451031
ref_results[1483] = 6.817448874278573E-13; // 461030
ref_results[1484] = 1.186527858634762E-38; // 471030
ref_results[1485] = 6.811047904661117E-19; // 381040
ref_results[1486] = 2.074277297729912E-15; // 391040
ref_results[1487] = 1.373165313556322E-12; // 401040
ref_results[1488] = 2.217203023986378E-11; // 411040
ref_results[1489] = 3.177763828281352E-12; // 411041
ref_results[1490] = 1.263830918797194E-09; // 421040
ref_results[1491] = 2.446065133073249E-08; // 431040
ref_results[1492] = 1.227355052606884E-04; // 441040
ref_results[1493] = 6.906578143467324E-11; // 451040
ref_results[1494] = 3.233254388457411E-11; // 451041
ref_results[1495] = 3.648589958706846E-06; // 461040
ref_results[1496] = 1.052258302225052E-19; // 381050
ref_results[1497] = 1.342620352931406E-16; // 391050
ref_results[1498] = 5.807224191219557E-13; // 401050
ref_results[1499] = 9.776484044495664E-12; // 411050
ref_results[1500] = 4.484289962199361E-10; // 421050
ref_results[1501] = 6.606899539264590E-09; // 431050
ref_results[1502] = 2.323660809327281E-07; // 441050
ref_results[1503] = 1.712985180009671E-06; // 451050
ref_results[1504] = 1.757951777306474E-10; // 451051
ref_results[1505] = 6.717576958939311E-05; // 461050
ref_results[1506] = 2.476024413008348E-23; // 471050
ref_results[1507] = 1.058415328603966E-26; // 471051
ref_results[1508] = 9.560030783333073E-30; // 481050
ref_results[1509] = 2.285960028473467E-19; // 391060
ref_results[1510] = 4.857046897567693E-16; // 401060
ref_results[1511] = 4.463003847788126E-13; // 411060
ref_results[1512] = 5.096619795219415E-11; // 421060
ref_results[1513] = 2.852436681270124E-10; // 431060
ref_results[1514] = 3.593653198418747E-05; // 441060
ref_results[1515] = 6.034130951091259E-11; // 451060
ref_results[1516] = 7.620589527434581E-10; // 451061
ref_results[1517] = 8.518917515939614E-06; // 461060
ref_results[1518] = 4.658061063574183E-21; // 471060
ref_results[1519] = 4.782725824387033E-18; // 471061
ref_results[1520] = 1.001963618082606E-19; // 481060
ref_results[1521] = 2.320693739332612E-20; // 391070
ref_results[1522] = 4.597497830326184E-17; // 401070
ref_results[1523] = 3.218201598524499E-14; // 411070
ref_results[1524] = 7.549081214965310E-12; // 421070
ref_results[1525] = 8.691654909418916E-11; // 431070
ref_results[1526] = 1.098680668159202E-09; // 441070
ref_results[1527] = 6.448360940874350E-09; // 451070
ref_results[1528] = 2.080885573463148E-05; // 461070
ref_results[1529] = 7.572278667821753E-15; // 461071
ref_results[1530] = 2.608281720492761E-13; // 471070
ref_results[1531] = 3.525298494583479E-20; // 471071
ref_results[1532] = 3.855719213576624E-21; // 481070
ref_results[1534] = 1.492077698867271E-22; // 391080
ref_results[1535] = 2.106065761438383E-18; // 401080
ref_results[1536] = 2.108075614593932E-15; // 411080
ref_results[1537] = 7.520332426799874E-13; // 421080
ref_results[1538] = 7.970728812363759E-12; // 431080
ref_results[1539] = 7.491781024430614E-10; // 441080
ref_results[1540] = 4.641259285848818E-11; // 451080
ref_results[1541] = 6.672931464141217E-12; // 451081
ref_results[1542] = 1.081740710312160E-05; // 461080
ref_results[1543] = 1.156541179427106E-16; // 471080
ref_results[1544] = 1.243693694745018E-12; // 471081
ref_results[1545] = 1.886301284981252E-12; // 481080
ref_results[1546] = 4.984542853302709E-19; // 401090
ref_results[1547] = 9.194083163618615E-16; // 411090
ref_results[1548] = 1.124038928187460E-13; // 421090
ref_results[1549] = 6.615617274458254E-13; // 431090
ref_results[1550] = 5.968597861784584E-11; // 441090
ref_results[1551] = 1.438288575788522E-10; // 451090
ref_results[1552] = 9.008062627829292E-08; // 461090
ref_results[1553] = 2.434697935150745E-13; // 461091
ref_results[1554] = 6.469970611778792E-06; // 471090
ref_results[1555] = 7.225954408103415E-11; // 471091
ref_results[1556] = 8.468113985952669E-14; // 481090
ref_results[1557] = 2.823212390610217E-27; // 491090
ref_results[1558] = 1.454889425980046E-20; // 401100
ref_results[1559] = 3.878990589561125E-17; // 411100
ref_results[1560] = 1.624891954471293E-14; // 421100
ref_results[1561] = 2.287463216178953E-13; // 431100
ref_results[1562] = 1.031789517791378E-11; // 441100
ref_results[1563] = 2.895740147901150E-12; // 451100
ref_results[1564] = 4.401914086796220E-13; // 451101
ref_results[1565] = 3.785300605665375E-06; // 461100
ref_results[1566] = 2.934366766913050E-12; // 471100
ref_results[1567] = 1.189391243760440E-08; // 471101
ref_results[1568] = 2.826574333547655E-07; // 481100
ref_results[1569] = 1.437909157897251E-17; // 411110
ref_results[1570] = 2.405636076662612E-15; // 421110
ref_results[1571] = 2.481788051180247E-14; // 431110
ref_results[1572] = 9.306902265830115E-13; // 441110
ref_results[1573] = 5.404375876957108E-12; // 451110
ref_results[1574] = 6.901834610931566E-10; // 461110
ref_results[1575] = 2.518529586672507E-12; // 461111
ref_results[1576] = 2.976855917462195E-07; // 471110
ref_results[1577] = 3.092409778852901E-11; // 471111
ref_results[1578] = 1.863726867527738E-06; // 481110
ref_results[1579] = 4.469752068055279E-15; // 481111
ref_results[1580] = 2.054001165843634E-22; // 491110
ref_results[1581] = 9.222516066987532E-28; // 491111
ref_results[1582] = 6.237566744122874E-28; // 501110
ref_results[1583] = 1.029642665381471E-19; // 411120
ref_results[1584] = 3.626705487976840E-16; // 421120
ref_results[1585] = 7.376491084938435E-15; // 431120
ref_results[1586] = 4.020940430394575E-13; // 441120
ref_results[1587] = 1.006632098708360E-12; // 451120
ref_results[1588] = 2.210865469808607E-08; // 461120
ref_results[1589] = 3.294594587522639E-09; // 471120
ref_results[1590] = 1.420950259023916E-06; // 481120
ref_results[1591] = 2.784662133000770E-21; // 491120
ref_results[1592] = 3.084569444567739E-21; // 491121
ref_results[1593] = 3.497504790548472E-18; // 501120
ref_results[1594] = 1.947251345736249E-20; // 411130
ref_results[1595] = 2.091756504333080E-17; // 421130
ref_results[1596] = 1.208151470778512E-15; // 431130
ref_results[1597] = 9.847863886452706E-14; // 441130
ref_results[1598] = 6.633658107118363E-13; // 451130
ref_results[1599] = 2.303551482481168E-11; // 461130
ref_results[1600] = 3.138553206005001E-09; // 471130
ref_results[1601] = 1.627157806022403E-11; // 471131
ref_results[1602] = 1.640514582044959E-07; // 481130
ref_results[1603] = 1.892419908819717E-09; // 481131
ref_results[1604] = 1.951820473292435E-11; // 491130
ref_results[1605] = 2.927033670479040E-20; // 491131
ref_results[1606] = 2.190156527525941E-19; // 501130
ref_results[1607] = 1.183533012489277E-22; // 501131
ref_results[1609] = 9.589337081831645E-19; // 421140
ref_results[1610] = 2.165114683910306E-16; // 431140
ref_results[1611] = 2.573013052903799E-14; // 441140
ref_results[1612] = 2.640430878290676E-13; // 451140
ref_results[1613] = 2.763489719045450E-11; // 461140
ref_results[1614] = 9.080844331373636E-13; // 471140
ref_results[1615] = 2.182536742738507E-06; // 481140
ref_results[1616] = 1.091784736271007E-17; // 491140
ref_results[1617] = 3.672606783392296E-13; // 491141
ref_results[1618] = 4.405632373745219E-13; // 501140
ref_results[1619] = 5.303356498811431E-20; // 421150
ref_results[1620] = 5.378647317788959E-17; // 431150
ref_results[1621] = 1.002983694824987E-14; // 441150
ref_results[1622] = 8.969489697940373E-14; // 451150
ref_results[1623] = 4.454191135997356E-12; // 461150
ref_results[1624] = 2.194939818643793E-10; // 471150
ref_results[1625] = 2.017717536229975E-13; // 471151
ref_results[1626] = 3.482667200355653E-08; // 481150
ref_results[1627] = 3.039662809257287E-08; // 481151
ref_results[1628] = 8.383773542083523E-07; // 491150
ref_results[1629] = 2.921566425990834E-09; // 491151
ref_results[1630] = 4.852356974528972E-08; // 501150
ref_results[1631] = 2.590622425612845E-40; // 511150
ref_results[1634] = 2.460002147206536E-18; // 431160
ref_results[1635] = 1.882537568722623E-15; // 441160
ref_results[1636] = 2.660254002879629E-14; // 451160
ref_results[1637] = 1.721121229092543E-12; // 461160
ref_results[1638] = 2.999454169450871E-11; // 471160
ref_results[1639] = 8.795383108604712E-14; // 471161
ref_results[1640] = 1.082457960517870E-06; // 481160
ref_results[1641] = 1.208337885735702E-13; // 491160
ref_results[1642] = 4.619780781571780E-11; // 491161
ref_results[1643] = 6.658513888578237E-08; // 501160
ref_results[1644] = 1.087599376925668E-19; // 431170
ref_results[1645] = 1.424656273689388E-16; // 441170
ref_results[1646] = 7.770343577285881E-15; // 451170
ref_results[1647] = 5.671489715453771E-13; // 461170
ref_results[1648] = 1.148968485530599E-11; // 471170
ref_results[1649] = 1.235390171420846E-13; // 471171
ref_results[1650] = 1.608599787149342E-09; // 481170
ref_results[1651] = 5.257164442942931E-11; // 481171
ref_results[1652] = 2.849286022823647E-10; // 491170
ref_results[1653] = 9.734777353869162E-10; // 491171
ref_results[1654] = 1.015713090975171E-06; // 501170
ref_results[1655] = 2.153958082487366E-10; // 501171
ref_results[1656] = 6.326109242001495E-24; // 511170
ref_results[1657] = 8.175334003665899E-39; // 521170
ref_results[1658] = 1.886796692882533E-20; // 431180
ref_results[1659] = 3.774632765005332E-17; // 441180
ref_results[1660] = 2.168196163737304E-15; // 451180
ref_results[1661] = 1.401521482786660E-13; // 461180
ref_results[1662] = 4.996555698883422E-13; // 471180
ref_results[1663] = 7.936448018047926E-14; // 471181
ref_results[1664] = 5.249010433327848E-10; // 481180
ref_results[1665] = 8.700562217815324E-13; // 491180
ref_results[1666] = 8.363066712920201E-15; // 491181
ref_results[1667] = 9.895627435194303E-07; // 501180
ref_results[1668] = 4.324241477518674E-22; // 511180
ref_results[1669] = 5.195590548585819E-20; // 511181
ref_results[1670] = 3.825105389583885E-30; // 521180
ref_results[1671] = 2.217535407885333E-18; // 441190
ref_results[1672] = 7.593496390791799E-16; // 451190
ref_results[1673] = 2.632987899524572E-14; // 461190
ref_results[1674] = 2.548999392576432E-13; // 471190
ref_results[1675] = 2.401292419316457E-11; // 481190
ref_results[1676] = 3.419687776971317E-12; // 481191
ref_results[1677] = 1.264671138421893E-11; // 491190
ref_results[1678] = 1.045619118642238E-10; // 491191
ref_results[1679] = 1.024990810346342E-06; // 501190
ref_results[1680] = 2.107526125900082E-11; // 501191
ref_results[1681] = 1.174576512603139E-16; // 511190
ref_results[1682] = 6.398712114619366E-24; // 521190
ref_results[1683] = 2.043459602673525E-19; // 441200
ref_results[1684] = 7.820694450990573E-17; // 451200
ref_results[1685] = 1.655063059663828E-14; // 461200
ref_results[1686] = 7.663979208944721E-14; // 471200
ref_results[1687] = 8.527711388071989E-15; // 471201
ref_results[1688] = 8.615364489276566E-12; // 481200
ref_results[1689] = 5.305784579577993E-13; // 491200
ref_results[1690] = 2.527662783217767E-13; // 491201
ref_results[1691] = 1.020392182477000E-06; // 501200
ref_results[1692] = 1.862361037575008E-16; // 511200
ref_results[1693] = 4.783895248530526E-14; // 511201
ref_results[1694] = 7.377127794952042E-18; // 521200
ref_results[1695] = 1.548963003777141E-17; // 451210
ref_results[1696] = 2.179803867414549E-15; // 461210
ref_results[1697] = 4.331662089671895E-14; // 471210
ref_results[1698] = 1.325336519603477E-12; // 481210
ref_results[1699] = 4.473876140494231E-13; // 481211
ref_results[1700] = 3.019771284837439E-12; // 491210
ref_results[1701] = 1.300714738396843E-11; // 491211
ref_results[1702] = 1.744542160714540E-08; // 501210
ref_results[1703] = 5.515113636152938E-08; // 501211
ref_results[1704] = 9.930586139090806E-07; // 511210
ref_results[1705] = 7.255581018467843E-16; // 521210
ref_results[1706] = 1.246582535527090E-15; // 521211
ref_results[1707] = 1.193914730024109E-25; // 531210
ref_results[1708] = 4.575375773870372E-19; // 451220
ref_results[1709] = 7.812164876334687E-16; // 461220
ref_results[1710] = 6.611311953053182E-15; // 471220
ref_results[1711] = 1.849410518542765E-14; // 471221
ref_results[1712] = 8.616453555046135E-13; // 481220
ref_results[1713] = 2.690441848801222E-13; // 491220
ref_results[1714] = 3.074883290152707E-13; // 491221
ref_results[1715] = 1.226969869743493E-06; // 501220
ref_results[1716] = 5.505082301322887E-10; // 511220
ref_results[1717] = 4.351971943677647E-14; // 511221
ref_results[1718] = 6.356721653620797E-09; // 521220
ref_results[1719] = 7.658014197708851E-17; // 461230
ref_results[1720] = 3.790009066694876E-15; // 471230
ref_results[1721] = 2.712851020865040E-13; // 481230
ref_results[1722] = 2.882827375199245E-15; // 481231
ref_results[1723] = 7.640843889777121E-13; // 491230
ref_results[1724] = 3.592044272491550E-12; // 491231
ref_results[1725] = 4.492678826416092E-07; // 501230
ref_results[1726] = 2.911897445901858E-10; // 501231
ref_results[1727] = 8.116047037902415E-07; // 511230
ref_results[1728] = 1.059925011264507E-11; // 521230
ref_results[1729] = 6.410031125098993E-12; // 521231
ref_results[1730] = 5.123507693503794E-18; // 531230
ref_results[1731] = 1.068880170446076E-17; // 461240
ref_results[1732] = 1.409776709706193E-15; // 471240
ref_results[1733] = 1.661729079183291E-13; // 481240
ref_results[1734] = 5.491836391904497E-13; // 491240
ref_results[1735] = 1.614977696460462E-13; // 491241
ref_results[1736] = 1.942467463965754E-06; // 501240
ref_results[1737] = 3.022870114731656E-09; // 511240
ref_results[1738] = 1.195225153394955E-14; // 511241
ref_results[1739] = 1.494032597584618E-09; // 521240
ref_results[1740] = 1.747722363283971E-20; // 531240
ref_results[1741] = 3.646492558314366E-24; // 541240
ref_results[1742] = 1.942234685745173E-16; // 471250
ref_results[1743] = 4.187383527014511E-14; // 481250
ref_results[1744] = 3.220768538304975E-13; // 491250
ref_results[1745] = 9.278426469229250E-13; // 491251
ref_results[1746] = 1.947539221130259E-07; // 501250
ref_results[1747] = 1.135076681632520E-10; // 501251
ref_results[1748] = 2.171511996598126E-06; // 511250
ref_results[1749] = 5.796042819581322E-08; // 521250
ref_results[1750] = 1.137626699076682E-08; // 521251
ref_results[1751] = 1.347792498276045E-16; // 531250
ref_results[1752] = 1.240415755894922E-20; // 541250
ref_results[1753] = 3.158591542522168E-24; // 541251
ref_results[1754] = 2.510747319073361E-17; // 471260
ref_results[1755] = 3.621059944449057E-14; // 481260
ref_results[1756] = 1.881890293022636E-13; // 491260
ref_results[1757] = 8.640752651229509E-14; // 491261
ref_results[1758] = 3.801787258630999E-06; // 501260
ref_results[1759] = 9.222376861175495E-09; // 511260
ref_results[1760] = 1.755397197302836E-11; // 511261
ref_results[1761] = 1.185418285770617E-07; // 521260
ref_results[1762] = 1.130196445144001E-12; // 531260
ref_results[1763] = 1.183204411081286E-12; // 541260
ref_results[1764] = 2.840317354401954E-18; // 471270
ref_results[1765] = 2.399410284094844E-14; // 481270
ref_results[1766] = 4.675644584654221E-13; // 491270
ref_results[1767] = 3.756533469641019E-13; // 491271
ref_results[1768] = 1.153309366698141E-08; // 501270
ref_results[1769] = 4.880149720610899E-11; // 501271
ref_results[1770] = 5.952735774573726E-07; // 511270
ref_results[1771] = 5.796376800654448E-08; // 521270
ref_results[1772] = 2.763118508004168E-07; // 521271
ref_results[1773] = 8.800172124389478E-06; // 531270
ref_results[1774] = 1.927646288892139E-14; // 541270
ref_results[1775] = 1.799589099401641E-19; // 541271
ref_results[1776] = 9.637989745274285E-38; // 551270
ref_results[1777] = 2.850281611870962E-19; // 471280
ref_results[1778] = 7.808585968486268E-15; // 481280
ref_results[1779] = 1.586644689446147E-13; // 491280
ref_results[1780] = 1.159188991052663E-13; // 491281
ref_results[1781] = 1.171343030354469E-08; // 501280
ref_results[1782] = 9.580997799895984E-12; // 501281
ref_results[1783] = 1.119964235304235E-07; // 511280
ref_results[1784] = 6.673114054595642E-11; // 511281
ref_results[1785] = 2.038931451636109E-05; // 521280
ref_results[1786] = 3.090962147049431E-11; // 531280
ref_results[1787] = 5.238235580608763E-08; // 541280
ref_results[1788] = 3.620883160973023E-20; // 471290
ref_results[1789] = 9.093607246284978E-17; // 481290
ref_results[1790] = 1.652349528348589E-13; // 491290
ref_results[1791] = 2.841544959495014E-13; // 491291
ref_results[1792] = 4.288576011857589E-10; // 501290
ref_results[1793] = 7.815532544934467E-10; // 501291
ref_results[1794] = 9.456577334459154E-08; // 511290
ref_results[1795] = 2.493722941816466E-08; // 521290
ref_results[1796] = 3.353647168870970E-09; // 521291
ref_results[1797] = 3.348805432010123E-05; // 531290
ref_results[1798] = 3.106952700054854E-11; // 541290
ref_results[1799] = 1.094441872668297E-12; // 541291
ref_results[1800] = 2.658023282918035E-24; // 551290
ref_results[1801] = 9.840295975047231E-34; // 561290
ref_results[1802] = 2.502353343147264E-18; // 471300
ref_results[1803] = 1.066919673989638E-13; // 481300
ref_results[1804] = 1.998495537643929E-13; // 491300
ref_results[1805] = 5.397678532979299E-14; // 491301
ref_results[1806] = 1.280832589881724E-09; // 501300
ref_results[1807] = 5.050628998119230E-10; // 501301
ref_results[1808] = 1.803030629916272E-08; // 511300
ref_results[1809] = 3.265566160573360E-09; // 511301
ref_results[1810] = 1.001374884750202E-04; // 521300
ref_results[1811] = 1.900136783676358E-09; // 531300
ref_results[1812] = 1.376236808400271E-11; // 531301
ref_results[1813] = 1.429198731004009E-07; // 541300
ref_results[1814] = 7.025840181894577E-15; // 481310
ref_results[1815] = 4.320107104394871E-14; // 491310
ref_results[1816] = 1.908463793169733E-14; // 491311
ref_results[1817] = 2.447322089739214E-10; // 501310
ref_results[1818] = 2.430396507810939E-10; // 501311
ref_results[1819] = 3.225276993734539E-08; // 511310
ref_results[1820] = 3.761171445972586E-08; // 521310
ref_results[1821] = 2.799595628015993E-07; // 521311
ref_results[1822] = 1.877441799259657E-05; // 531310
ref_results[1823] = 1.361247185452374E-04; // 541310
ref_results[1824] = 3.217914643151923E-07; // 541311
ref_results[1825] = 7.103156497197267E-15; // 551310
ref_results[1826] = 1.305511069379461E-19; // 561310
ref_results[1827] = 7.463516875990566E-18; // 481320
ref_results[1828] = 1.565996889683915E-14; // 491320
ref_results[1829] = 2.304971201084433E-10; // 501320
ref_results[1830] = 3.034270800562608E-09; // 511320
ref_results[1831] = 1.905186191774883E-09; // 511321
ref_results[1832] = 1.102538873466016E-05; // 521320
ref_results[1833] = 3.321665499591365E-07; // 531320
ref_results[1834] = 1.000962774015715E-09; // 531321
ref_results[1835] = 2.332690283106431E-04; // 541320
ref_results[1836] = 3.249550219323196E-11; // 551320
ref_results[1837] = 2.761667743195731E-12; // 561320
ref_results[1838] = 7.378242356664619E-16; // 491330
ref_results[1839] = 1.983920200846721E-12; // 501330
ref_results[1840] = 3.147714137791159E-09; // 511330
ref_results[1841] = 2.733869534245644E-08; // 521330
ref_results[1842] = 8.722504701723323E-08; // 521331
ref_results[1843] = 4.530894656747961E-06; // 531330
ref_results[1844] = 1.080949116125066E-11; // 531331
ref_results[1845] = 2.739383872000116E-05; // 541330
ref_results[1846] = 1.279557108959344E-07; // 541331
ref_results[1847] = 3.258193600561749E-04; // 551330
ref_results[1848] = 2.828891106345012E-14; // 561330
ref_results[1849] = 1.062681782319992E-26; // 571330
ref_results[1850] = 3.286051488104104E-17; // 491340
ref_results[1851] = 2.258657366186879E-13; // 501340
ref_results[1852] = 2.838317360941259E-12; // 511340
ref_results[1853] = 3.481793819670873E-11; // 511341
ref_results[1854] = 1.518236514434230E-07; // 521340
ref_results[1855] = 2.200676572728286E-07; // 531340
ref_results[1856] = 8.538948731796625E-10; // 531341
ref_results[1857] = 4.253403710217641E-04; // 541340
ref_results[1858] = 1.298201107375167E-13; // 541341
ref_results[1859] = 4.841332581340503E-06; // 551340
ref_results[1860] = 1.776568933042583E-09; // 551341
ref_results[1861] = 1.384145869928772E-07; // 561340
ref_results[1862] = 6.984940461968069E-19; // 491350
ref_results[1863] = 6.907059177016713E-15; // 501350
ref_results[1864] = 2.729238742247550E-12; // 511350
ref_results[1865] = 5.671488750363544E-10; // 521350
ref_results[1866] = 1.348195271756317E-06; // 531350
ref_results[1867] = 5.815031220517093E-07; // 541350
ref_results[1868] = 7.052173132507754E-09; // 541351
ref_results[1869] = 1.047865395268317E-04; // 551350
ref_results[1870] = 4.015871123414630E-11; // 551351
ref_results[1871] = 1.262528313446221E-10; // 561350
ref_results[1872] = 1.040130758718436E-12; // 561351
ref_results[1873] = 2.516040371019640E-17; // 571350
ref_results[1874] = 2.943137185693689E-26; // 581350
ref_results[1875] = 1.805765893531737E-16; // 501360
ref_results[1876] = 1.782440650039386E-13; // 511360
ref_results[1877] = 2.169957672059554E-10; // 521360
ref_results[1878] = 2.014227228814423E-09; // 531360
ref_results[1879] = 5.488390514663960E-10; // 531361
ref_results[1880] = 5.972635256225684E-04; // 541360
ref_results[1881] = 1.642429614901927E-07; // 551360
ref_results[1882] = 1.312467623839350E-12; // 551361
ref_results[1883] = 7.146493372970428E-07; // 561360
ref_results[1884] = 5.027173159916240E-15; // 561361
ref_results[1885] = 3.160967743828927E-17; // 501370
ref_results[1886] = 1.142250504585006E-13; // 511370
ref_results[1887] = 1.042416985796431E-11; // 521370
ref_results[1888] = 6.806164484177860E-10; // 531370
ref_results[1889] = 1.257585415765920E-08; // 541370
ref_results[1890] = 3.347069344960873E-04; // 551370
ref_results[1891] = 1.084728689292380E-06; // 561370
ref_results[1892] = 5.179148985383994E-11; // 561371
ref_results[1893] = 8.454280150753206E-12; // 571370
ref_results[1894] = 2.661429726149207E-18; // 581370
ref_results[1895] = 3.625387724400055E-16; // 511380
ref_results[1896] = 1.080789764701066E-12; // 521380
ref_results[1897] = 8.803650774443595E-11; // 531380
ref_results[1898] = 4.667373000424793E-08; // 541380
ref_results[1899] = 1.188148888186545E-07; // 551380
ref_results[1900] = 3.945968116807777E-10; // 551381
ref_results[1901] = 3.616113426625483E-04; // 561380
ref_results[1902] = 1.923975453426319E-09; // 571380
ref_results[1903] = 5.231303411926665E-14; // 581380
ref_results[1904] = 1.843113994044173E-17; // 511390
ref_results[1905] = 3.593372318582496E-14; // 521390
ref_results[1906] = 1.626738242813288E-11; // 531390
ref_results[1907] = 1.725309173561718E-09; // 541390
ref_results[1908] = 3.106728843993056E-08; // 551390
ref_results[1909] = 2.820710236560055E-07; // 561390
ref_results[1910] = 3.422877207628350E-04; // 571390
ref_results[1911] = 1.417757504932030E-10; // 581390
ref_results[1912] = 1.299039514154516E-15; // 581391
ref_results[1913] = 2.824174117307435E-18; // 591390
ref_results[1914] = 4.102473674314800E-14; // 521400
ref_results[1915] = 1.376368091166465E-12; // 531400
ref_results[1916] = 4.261814163734458E-10; // 541400
ref_results[1917] = 3.169312900236370E-09; // 551400
ref_results[1918] = 6.044642369367612E-05; // 561400
ref_results[1919] = 7.979658305503589E-06; // 571400
ref_results[1920] = 2.647646135813749E-04; // 581400
ref_results[1921] = 5.359536470775515E-15; // 591400
ref_results[1922] = 5.956254442747427E-20; // 601400
ref_results[1923] = 5.461251878027195E-16; // 521410
ref_results[1924] = 1.823292981416422E-13; // 531410
ref_results[1925] = 1.959184492058664E-11; // 541410
ref_results[1926] = 9.222701515995446E-10; // 551410
ref_results[1927] = 5.650632173457092E-08; // 561410
ref_results[1928] = 7.304843543106868E-07; // 571410
ref_results[1929] = 1.283106989288320E-04; // 581410
ref_results[1930] = 1.825789605880091E-04; // 591410
ref_results[1931] = 2.958107930043357E-16; // 601410
ref_results[1932] = 1.547896860601900E-37; // 611410
ref_results[1933] = 1.116047264200412E-17; // 521420
ref_results[1934] = 1.290123399566268E-14; // 531420
ref_results[1935] = 5.203907203389649E-12; // 541420
ref_results[1936] = 4.016101426220456E-11; // 551420
ref_results[1937] = 3.188351581789461E-08; // 561420
ref_results[1938] = 2.795304041312197E-07; // 571420
ref_results[1939] = 3.117665613334466E-04; // 581420
ref_results[1940] = 7.155024173575995E-09; // 591420
ref_results[1941] = 3.226481693069409E-11; // 591421
ref_results[1942] = 2.363699513882407E-07; // 601420
ref_results[1943] = 9.711647969232598E-16; // 531430
ref_results[1944] = 3.096647111826600E-13; // 541430
ref_results[1945] = 2.321914624842999E-11; // 551430
ref_results[1946] = 6.887203487083807E-10; // 561430
ref_results[1947] = 4.363570025424096E-08; // 571430
ref_results[1948] = 6.128358872740012E-06; // 581430
ref_results[1949] = 6.017903431573731E-05; // 591430
ref_results[1950] = 2.407641000500235E-04; // 601430
ref_results[1951] = 4.684920110426227E-22; // 611430
ref_results[1952] = 7.171146453547897E-31; // 621430
ref_results[1953] = 3.400394895984428E-32; // 621431
ref_results[1954] = 1.147748554018514E-17; // 531440
ref_results[1955] = 3.833990241947866E-14; // 541440
ref_results[1956] = 4.158480592668982E-12; // 551440
ref_results[1957] = 4.303542420569471E-10; // 561440
ref_results[1958] = 1.915989741588537E-09; // 571440
ref_results[1959] = 2.570969748156732E-04; // 581440
ref_results[1960] = 1.108950000172887E-08; // 591440
ref_results[1961] = 1.183921359618074E-10; // 591441
ref_results[1962] = 3.996315163586478E-05; // 601440
ref_results[1963] = 3.677995167033868E-18; // 611440
ref_results[1964] = 1.950569879110547E-21; // 621440
ref_results[1965] = 1.180124023068883E-15; // 541450
ref_results[1966] = 5.092784463522265E-13; // 551450
ref_results[1967] = 7.279437344874675E-11; // 561450
ref_results[1968] = 8.258600745204395E-10; // 571450
ref_results[1969] = 6.212962356562728E-09; // 581450
ref_results[1970] = 7.413499401702317E-07; // 591450
ref_results[1971] = 2.061866982260808E-04; // 601450
ref_results[1972] = 4.859649587351503E-13; // 611450
ref_results[1973] = 5.976460313530385E-16; // 621450
ref_results[1974] = 7.127290213807051E-17; // 541460
ref_results[1975] = 3.618628886776494E-14; // 551460
ref_results[1976] = 1.812166104309317E-11; // 561460
ref_results[1977] = 9.189278236239708E-11; // 571460
ref_results[1978] = 6.493035326255459E-11; // 571461
ref_results[1979] = 2.155759208553548E-08; // 581460
ref_results[1980] = 3.857375326603278E-08; // 591460
ref_results[1981] = 1.645573134446125E-04; // 601460
ref_results[1982] = 5.437284463606051E-11; // 611460
ref_results[1983] = 5.297649582527222E-12; // 621460
ref_results[1984] = 2.717755494349355E-18; // 541470
ref_results[1985] = 5.537762482073365E-15; // 551470
ref_results[1986] = 2.020834297616393E-12; // 561470
ref_results[1987] = 3.392857100337249E-11; // 571470
ref_results[1988] = 9.744682762503932E-10; // 581470
ref_results[1989] = 1.616592851707923E-08; // 591470
ref_results[1990] = 1.881421996133850E-05; // 601470
ref_results[1991] = 9.141016372862219E-05; // 611470
ref_results[1992] = 2.923627429561018E-06; // 621470
ref_results[1993] = 1.887092263669973E-25; // 631470
ref_results[1994] = 3.402614913783055E-37; // 641470
ref_results[1995] = 1.690366456949694E-16; // 551480
ref_results[1996] = 1.720174802683239E-13; // 561480
ref_results[1997] = 4.346392200542509E-12; // 571480
ref_results[1998] = 7.855851481989561E-10; // 581480
ref_results[1999] = 2.008030547787535E-09; // 591480
ref_results[2000] = 7.061844232981413E-11; // 591481
ref_results[2001] = 9.334804126211311E-05; // 601480
ref_results[2002] = 5.589448641707958E-07; // 611480
ref_results[2003] = 7.803306018009605E-07; // 611481
ref_results[2004] = 3.566103427529445E-06; // 621480
ref_results[2005] = 2.484643116309654E-18; // 551490
ref_results[2006] = 9.803911768582257E-15; // 561490
ref_results[2007] = 1.015780931977337E-12; // 571490
ref_results[2008] = 3.810729922272226E-11; // 581490
ref_results[2009] = 1.356348943777197E-09; // 591490
ref_results[2010] = 6.302427126127811E-08; // 601490
ref_results[2011] = 2.069718706675013E-06; // 611490
ref_results[2012] = 4.716863485868820E-06; // 621490
ref_results[2013] = 8.332896453272024E-18; // 631490
ref_results[2014] = 8.798941729698933E-26; // 641490
ref_results[2015] = 1.714815027140910E-19; // 551500
ref_results[2016] = 8.183049103486468E-16; // 561500
ref_results[2017] = 9.249402992464619E-14; // 571500
ref_results[2018] = 1.523866531042592E-11; // 581500
ref_results[2019] = 3.738698610536475E-11; // 591500
ref_results[2020] = 3.793947640283980E-05; // 601500
ref_results[2021] = 1.108055612457773E-09; // 611500
ref_results[2022] = 5.493706172512080E-05; // 621500
ref_results[2023] = 3.935106036672529E-20; // 551510
ref_results[2024] = 1.062149183386312E-16; // 561510
ref_results[2025] = 2.168686992489689E-14; // 571510
ref_results[2026] = 1.068419580264805E-12; // 581510
ref_results[2027] = 6.323485959999937E-11; // 591510
ref_results[2028] = 3.165954121018435E-09; // 601510
ref_results[2029] = 4.339321084087801E-07; // 611510
ref_results[2030] = 1.296374513197839E-05; // 621510
ref_results[2031] = 9.349113963951186E-09; // 631510
ref_results[2032] = 7.823970858388901E-16; // 641510
ref_results[2033] = 2.001553236856188E-36; // 651510
ref_results[2034] = 6.551940853020023E-19; // 561520
ref_results[2035] = 1.309123889901362E-15; // 571520
ref_results[2036] = 3.542130803422775E-13; // 581520
ref_results[2037] = 4.799191932866739E-12; // 591520
ref_results[2038] = 1.891528258954613E-09; // 601520
ref_results[2039] = 6.888998427897794E-10; // 611520
ref_results[2040] = 1.774498325191200E-11; // 611521
ref_results[2041] = 2.533622239420331E-05; // 621520
ref_results[2042] = 3.211619482313912E-09; // 631520
ref_results[2043] = 2.939308061647924E-11; // 631521
ref_results[2044] = 1.523987525461313E-09; // 641520
ref_results[2045] = 2.482222065479792E-20; // 561530
ref_results[2046] = 9.934217477200206E-17; // 571530
ref_results[2047] = 3.785165036949500E-14; // 581530
ref_results[2048] = 2.044612455821366E-12; // 591530
ref_results[2049] = 5.058726992345920E-11; // 601530
ref_results[2050] = 5.460042603770211E-10; // 611530
ref_results[2051] = 4.516305402953823E-07; // 621530
ref_results[2052] = 1.130939868935761E-05; // 631530
ref_results[2053] = 2.851774458680989E-11; // 641530
ref_results[2054] = 7.412218214976911E-37; // 641531
ref_results[2055] = 1.310887009522648E-24; // 651530
ref_results[2056] = 1.234929323622866E-18; // 571540
ref_results[2057] = 3.309232585249250E-15; // 581540
ref_results[2058] = 2.119149285154473E-13; // 591540
ref_results[2059] = 1.889160033554083E-11; // 601540
ref_results[2060] = 1.310201977859621E-10; // 611540
ref_results[2061] = 8.861144897828656E-12; // 611541
ref_results[2062] = 5.111185159694604E-06; // 621540
ref_results[2063] = 6.575186472013094E-07; // 631540
ref_results[2064] = 1.306094884396240E-11; // 631541
ref_results[2065] = 4.710347586654164E-09; // 641540
ref_results[2066] = 2.117686222019974E-20; // 571550
ref_results[2067] = 1.835392011195188E-16; // 581550
ref_results[2068] = 1.719115059126815E-14; // 591550
ref_results[2069] = 2.184559627798912E-12; // 601550
ref_results[2070] = 1.816293239482900E-11; // 611550
ref_results[2071] = 6.309819536395271E-10; // 621550
ref_results[2072] = 1.143899057916519E-06; // 631550
ref_results[2073] = 8.350047057410287E-09; // 641550
ref_results[2074] = 1.874632455648648E-20; // 641551
ref_results[2075] = 1.828024309564499E-18; // 651550
ref_results[2076] = 1.387123188673242E-26; // 661550
ref_results[2077] = 3.653959143114055E-18; // 581560
ref_results[2078] = 2.076751488947291E-15; // 591560
ref_results[2079] = 4.183186365410257E-13; // 601560
ref_results[2080] = 5.364632877875937E-12; // 611560
ref_results[2081] = 8.996711532617262E-09; // 621560
ref_results[2082] = 7.448180884654293E-07; // 631560
ref_results[2083] = 1.914960508053467E-06; // 641560
ref_results[2084] = 1.113685084057522E-16; // 651560
ref_results[2085] = 2.373313758123543E-18; // 651561
ref_results[2086] = 1.337219367055920E-23; // 661560
ref_results[2087] = 4.896536062295688E-20; // 581570
ref_results[2088] = 1.021415923642110E-16; // 591570
ref_results[2089] = 2.645451700018010E-14; // 601570
ref_results[2090] = 7.828197754356787E-13; // 611570
ref_results[2091] = 6.505014376669285E-11; // 621570
ref_results[2092] = 8.371838163921401E-09; // 631570
ref_results[2093] = 4.695683666371235E-08; // 641570
ref_results[2094] = 2.109892930987381E-14; // 651570
ref_results[2095] = 1.532859443871470E-23; // 661570
ref_results[2096] = 4.375224454533479E-18; // 591580
ref_results[2097] = 2.973506689293843E-15; // 601580
ref_results[2098] = 9.458689933829100E-14; // 611580
ref_results[2099] = 2.177150322968824E-11; // 621580
ref_results[2100] = 2.058109483412882E-10; // 631580
ref_results[2101] = 9.833980071475653E-07; // 641580
ref_results[2102] = 4.662514660496199E-13; // 651580
ref_results[2103] = 3.624315438995860E-19; // 651581
ref_results[2104] = 6.023507381131992E-16; // 661580
ref_results[2105] = 1.033368837016042E-19; // 591590
ref_results[2106] = 1.661586728604112E-16; // 601590
ref_results[2107] = 6.569457322290512E-15; // 611590
ref_results[2108] = 2.755255108064204E-13; // 621590
ref_results[2109] = 3.484599066066552E-11; // 631590
ref_results[2110] = 2.210626713246729E-09; // 641590
ref_results[2111] = 1.372769808252232E-07; // 651590
ref_results[2112] = 3.611581461379170E-16; // 661590
ref_results[2113] = 2.934359005580611E-26; // 671590
ref_results[2114] = 1.478944302361989E-29; // 671591
ref_results[2115] = 5.811831165667232E-18; // 601600
ref_results[2116] = 1.399699674797607E-15; // 611600
ref_results[2117] = 7.323196603171378E-14; // 621600
ref_results[2118] = 4.933873282819388E-13; // 631600
ref_results[2119] = 5.748313596660353E-08; // 641600
ref_results[2120] = 1.664943110150651E-09; // 651600
ref_results[2121] = 5.035676140352856E-10; // 661600
ref_results[2122] = 1.850113727018401E-19; // 601610
ref_results[2123] = 6.221353438672625E-17; // 611610
ref_results[2124] = 7.646421085060137E-15; // 621610
ref_results[2125] = 1.267453829762149E-13; // 631610
ref_results[2126] = 1.355354791882000E-12; // 641610
ref_results[2127] = 3.452322033299295E-09; // 651610
ref_results[2128] = 1.899968996771738E-08; // 661610
ref_results[2129] = 2.653469137114746E-20; // 671610
ref_results[2130] = 1.222231634431546E-25; // 671611
ref_results[2131] = 6.195992313526730E-27; // 681610
ref_results[2132] = 3.657306075647195E-18; // 611620
ref_results[2133] = 5.274932713010817E-16; // 621620
ref_results[2134] = 1.425798687286017E-14; // 631620
ref_results[2135] = 1.293631666029471E-12; // 641620
ref_results[2136] = 1.224555381762863E-12; // 651620
ref_results[2137] = 1.037323451693779E-08; // 661620
ref_results[2138] = 4.703062425655338E-20; // 671620
ref_results[2139] = 2.010934060471947E-19; // 671621
ref_results[2140] = 9.665250767590397E-24; // 681620
ref_results[2141] = 1.496040501927817E-19; // 611630
ref_results[2142] = 4.568313339997645E-17; // 621630
ref_results[2143] = 2.338755163560211E-15; // 631630
ref_results[2144] = 7.112547147564525E-14; // 641630
ref_results[2145] = 1.341247528576691E-12; // 651630
ref_results[2146] = 5.003014141635781E-09; // 661630
ref_results[2147] = 3.226650608589195E-15; // 671630
ref_results[2148] = 1.515515032235145E-22; // 671631
ref_results[2149] = 1.231226455058647E-23; // 681630
ref_results[2150] = 4.001710777202688E-18; // 621640
ref_results[2151] = 1.916946466631153E-16; // 631640
ref_results[2152] = 1.726202564520150E-14; // 641640
ref_results[2153] = 8.397007897881669E-14; // 651640
ref_results[2154] = 1.874777159559364E-09; // 661640
ref_results[2155] = 1.367409875161624E-17; // 671640
ref_results[2156] = 1.214346291110065E-17; // 671641
ref_results[2157] = 9.580891150151123E-15; // 681640
ref_results[2158] = 1.955891118402326E-19; // 621650
ref_results[2159] = 2.515906777716842E-17; // 631650
ref_results[2160] = 1.386423301049046E-15; // 641650
ref_results[2161] = 2.648952713362919E-14; // 651650
ref_results[2162] = 2.805808438184219E-12; // 661650
ref_results[2163] = 1.693687120557864E-14; // 661651
ref_results[2164] = 1.198878693634352E-09; // 671650
ref_results[2165] = 1.176419524431712E-17; // 681650
ref_results[2166] = 3.069043356488482E-25; // 691650
ref_results[2167] = 2.393539751747568E-18; // 631660
ref_results[2168] = 3.722959395585664E-16; // 641660
ref_results[2169] = 2.179554107750854E-15; // 651660
ref_results[2170] = 3.468209046787446E-11; // 661660
ref_results[2171] = 1.259199034452278E-11; // 671660
ref_results[2172] = 1.195994004294269E-12; // 671661
ref_results[2173] = 5.153332693098712E-10; // 681660
ref_results[2174] = 1.435080718670593E-24; // 691660
ref_results[2175] = 8.905730668463845E-33; // 701660
ref_results[2176] = 2.456531566221249E-19; // 631670
ref_results[2177] = 5.396061981586418E-17; // 641670
ref_results[2178] = 8.253537367456891E-16; // 651670
ref_results[2179] = 1.931458439222643E-14; // 661670
ref_results[2180] = 5.898795241661224E-13; // 671670
ref_results[2181] = 2.114556222952921E-10; // 681670
ref_results[2182] = 1.687333817231150E-17; // 681671
ref_results[2183] = 6.195845496999877E-20; // 691670
ref_results[2184] = 4.479283359401728E-29; // 701670
ref_results[2185] = 1.683728646108313E-18; // 641680
ref_results[2186] = 1.532007123314503E-16; // 651680
ref_results[2187] = 1.323596269193205E-14; // 661680
ref_results[2188] = 4.624222531606186E-15; // 671680
ref_results[2189] = 2.023494518010027E-10; // 681680
ref_results[2190] = 1.014545677736925E-16; // 691680
ref_results[2191] = 1.605342152359874E-21; // 701680
ref_results[2192] = 1.248338087905226E-18; // 641690
ref_results[2193] = 1.671907450571077E-17; // 651690
ref_results[2194] = 5.451783386554388E-16; // 661690
ref_results[2195] = 4.140753167916841E-15; // 671690
ref_results[2196] = 1.178549990307703E-11; // 681690
ref_results[2197] = 6.714333849307719E-11; // 691690
ref_results[2198] = 2.856841478371677E-19; // 701690
ref_results[2199] = 1.434683739654900E-24; // 701691
ref_results[2200] = 1.231261350747107E-35; // 711690
ref_results[2201] = 9.044468809661094E-39; // 711691
ref_results[2202] = 7.972262655958808E-18; // 651700
ref_results[2203] = 1.997240572201628E-16; // 661700
ref_results[2204] = 1.154392481447103E-15; // 671700
ref_results[2205] = 1.346787814615365E-17; // 671701
ref_results[2206] = 4.277815741639879E-11; // 681700
ref_results[2207] = 3.627094085837589E-12; // 691700
ref_results[2208] = 6.061667287263745E-13; // 701700
ref_results[2209] = 3.540746724348236E-19; // 651710
ref_results[2210] = 1.891568227081672E-17; // 661710
ref_results[2211] = 2.109977633535022E-16; // 671710
ref_results[2212] = 1.101056820686762E-13; // 681710
ref_results[2213] = 2.201431108429836E-11; // 691710
ref_results[2214] = 1.091220046945620E-12; // 701710
ref_results[2215] = 1.996192329532361E-24; // 711710
ref_results[2216] = 1.377940578014366E-28; // 711711
ref_results[2218] = 1.056419945834109E-17; // 661720
ref_results[2219] = 1.322485959148287E-16; // 671720
ref_results[2220] = 9.640341866357242E-13; // 681720
ref_results[2221] = 1.287613996566181E-12; // 691720
ref_results[2222] = 3.071833582771752E-11; // 701720
ref_results[2223] = 4.436941601005613E-23; // 711720
ref_results[2224] = 1.028258540050881E-26; // 711721
Vec_Dbl ref( &ref_results[0], &ref_results[0] + itot );
return ref;
}
{
int itot = 2226;
// Composition calculated with arbitrary precision generalized TTA with
// analytic source term.
// Precision: 1000 bits, Cutoff: 1.00E-60, delta t: 8.640000000000000E+06
double ref_results[2226] = {0};
ref_results[0] = 1.839602941040898E-06; // 10010
ref_results[1] = 5.776299682480963E-09; // 10020
ref_results[2] = 8.104711073255458E-11; // 10030
ref_results[3] = 9.084465175816207E-13; // 20030
ref_results[4] = 3.981152300902746E-08; // 20040
ref_results[125] = 6.354743647438084E-60; // 240540
ref_results[126] = 1.575591852437427E-59; // 240550
ref_results[130] = 1.033991703602636E-55; // 250550
ref_results[131] = 9.498602188005686E-56; // 250560
ref_results[132] = 3.556052770332234E-58; // 250570
ref_results[133] = 1.002824347090032E-60; // 250580
ref_results[136] = 7.802003200540151E-54; // 260560
ref_results[137] = 4.711672421389045E-53; // 260570
ref_results[138] = 1.992779896369434E-49; // 260580
ref_results[139] = 1.730879343102745E-45; // 260590
ref_results[140] = 1.614046034928473E-43; // 260600
ref_results[143] = 3.421773297346880E-60; // 270570
ref_results[144] = 3.430246755015882E-55; // 270581
ref_results[145] = 1.022927938251984E-53; // 270580
ref_results[146] = 4.029914442913543E-46; // 270590
ref_results[147] = 8.564626256253964E-46; // 270600
ref_results[148] = 1.753987932207935E-49; // 270601
ref_results[149] = 1.941686156772945E-45; // 270610
ref_results[150] = 1.273173063161251E-45; // 270620
ref_results[154] = 1.016205193900835E-55; // 280590
ref_results[155] = 9.812228034529113E-48; // 280600
ref_results[156] = 3.705784389670109E-43; // 280610
ref_results[157] = 9.402375453606868E-39; // 280620
ref_results[158] = 3.836279025402426E-35; // 280630
ref_results[159] = 4.199631193434004E-34; // 280640
ref_results[160] = 3.103390150220979E-35; // 280650
ref_results[161] = 7.895021364284060E-34; // 280660
ref_results[162] = 1.517854276057692E-49; // 290620
ref_results[163] = 1.213661441319673E-38; // 290630
ref_results[164] = 4.370898919525463E-41; // 290640
ref_results[165] = 8.015924436797718E-33; // 290650
ref_results[166] = 2.365519549460050E-35; // 290660
ref_results[167] = 5.139056927395501E-29; // 290670
ref_results[168] = 2.883559504391705E-51; // 300630
ref_results[169] = 3.996308958371233E-40; // 300640
ref_results[170] = 5.993577500244873E-36; // 300650
ref_results[171] = 1.644661178012166E-28; // 300660
ref_results[172] = 1.913480284811727E-27; // 300670
ref_results[173] = 2.484653841395627E-25; // 300680
ref_results[174] = 2.443229009010912E-27; // 300690
ref_results[175] = 1.043431001711498E-26; // 300691
ref_results[176] = 2.572813096915312E-22; // 300700
ref_results[177] = 3.539536887355399E-24; // 300710
ref_results[178] = 3.974833566819878E-22; // 300711
ref_results[179] = 1.074816909709985E-23; // 300720
ref_results[180] = 9.234556497525593E-38; // 310670
ref_results[181] = 3.269845452051186E-34; // 310680
ref_results[182] = 1.083664533529095E-24; // 310690
ref_results[183] = 2.377222977571163E-28; // 310700
ref_results[184] = 8.069425423587293E-19; // 310710
ref_results[185] = 1.310184947395115E-18; // 310720
ref_results[186] = 1.890519629831969E-36; // 320680
ref_results[187] = 1.488692880999235E-29; // 320690
ref_results[188] = 6.695840351138919E-21; // 320700
ref_results[189] = 5.139939003057357E-20; // 320710
ref_results[190] = 1.783413161126449E-37; // 320711
ref_results[191] = 1.228443819152529E-16; // 320720
ref_results[192] = 4.783753887390187E-16; // 320730
ref_results[193] = 2.058343771883391E-11; // 320740
ref_results[194] = 4.456232865887882E-12; // 320750
ref_results[195] = 2.307957704336895E-14; // 320751
ref_results[196] = 9.372310210946293E-13; // 320760
ref_results[197] = 1.285158636741222E-14; // 320770
ref_results[198] = 8.636235783876497E-18; // 320771
ref_results[199] = 5.201752250228651E-29; // 330710
ref_results[200] = 1.136956510989966E-25; // 330720
ref_results[201] = 3.626192251215348E-20; // 330730
ref_results[202] = 1.874692725419100E-16; // 330740
ref_results[203] = 2.900555487164251E-09; // 330750
ref_results[204] = 1.450260790606293E-20; // 330751
ref_results[205] = 1.134709243872403E-09; // 330760
ref_results[206] = 3.728095367230008E-11; // 330770
ref_results[207] = 1.592175358515812E-30; // 340720
ref_results[208] = 4.363205501708419E-23; // 340730
ref_results[209] = 4.640872442940219E-13; // 340740
ref_results[210] = 1.315140631363705E-10; // 340750
ref_results[211] = 3.529003892506818E-08; // 340760
ref_results[212] = 1.626106171444543E-07; // 340770
ref_results[213] = 6.599438750426030E-13; // 340771
ref_results[214] = 8.636124440867671E-01; // 340780
ref_results[215] = 2.465334858713592E-04; // 340790
ref_results[216] = 1.702755293312783E-08; // 340791
ref_results[217] = 3.895713434253596E-04; // 340800
ref_results[218] = 1.449005941149263E-11; // 340810
ref_results[219] = 6.895353772254886E-12; // 340811
ref_results[220] = 1.086465049519297E-19; // 340820
ref_results[221] = 5.449145760048730E-29; // 340830
ref_results[222] = 1.863813149285506E-29; // 340831
ref_results[223] = 3.983499541393311E-17; // 350760
ref_results[224] = 1.062509273028702E-12; // 350770
ref_results[225] = 4.246606675821655E-16; // 350771
ref_results[226] = 5.592106548765864E-05; // 350780
ref_results[227] = 8.593011821302311E-01; // 350790
ref_results[228] = 1.659731182762369E-06; // 350800
ref_results[229] = 5.747999220093113E-06; // 350801
ref_results[230] = 2.620538368794400E-08; // 350810
ref_results[231] = 2.863107606341911E-12; // 350820
ref_results[232] = 8.205670957736855E-15; // 350821
ref_results[233] = 5.961265435740322E-17; // 350830
ref_results[235] = 3.259641090770820E-15; // 360770
ref_results[236] = 8.625924407043709E-05; // 360780
ref_results[237] = 5.536816108876307E-09; // 360790
ref_results[238] = 6.963805232164216E-14; // 360791
ref_results[239] = 4.289272889328724E-03; // 360800
ref_results[240] = 1.112602774395280E-05; // 360810
ref_results[241] = 2.902506223137610E-11; // 360811
ref_results[242] = 2.746302408218335E-08; // 360820
ref_results[243] = 7.676689116716371E-11; // 360830
ref_results[244] = 2.834251775975569E-13; // 360831
ref_results[245] = 5.819040549229142E-13; // 360840
ref_results[246] = 1.459279506462024E-17; // 360850
ref_results[247] = 6.252189393305435E-19; // 360851
ref_results[248] = 7.670023082649670E-22; // 360860
ref_results[249] = 2.935672274386813E-30; // 360870
ref_results[250] = 4.536496743572313E-55; // 360880
ref_results[251] = 7.186405054507034E-43; // 370820
ref_results[252] = 1.743112229879835E-31; // 370830
ref_results[253] = 6.623857696137385E-25; // 370840
ref_results[254] = 2.603047720870766E-17; // 370850
ref_results[255] = 1.857639977236259E-21; // 370860
ref_results[256] = 2.620042823748211E-26; // 370861
ref_results[257] = 1.560530100899538E-24; // 370870
ref_results[258] = 6.679519146291445E-32; // 370880
ref_results[259] = 2.576007965284358E-46; // 370890
ref_results[260] = 4.204104949251970E-43; // 380820
ref_results[261] = 9.143638425075437E-36; // 380830
ref_results[262] = 6.333908162040065E-27; // 380840
ref_results[263] = 1.532347345622390E-29; // 380850
ref_results[264] = 2.746338049022855E-32; // 380851
ref_results[265] = 7.896212565732100E-22; // 380860
ref_results[266] = 5.529312477601937E-26; // 380870
ref_results[267] = 7.326709051515108E-28; // 380871
ref_results[268] = 9.543465261509495E-29; // 380880
ref_results[269] = 8.027155543822328E-35; // 380890
ref_results[270] = 8.238546352705010E-40; // 380900
ref_results[271] = 5.533577428415580E-47; // 380910
ref_results[274] = 2.664829567860276E-51; // 390870
ref_results[275] = 5.240403228212455E-52; // 390871
ref_results[276] = 1.341311287936841E-43; // 390880
ref_results[277] = 8.955338461486309E-36; // 390890
ref_results[278] = 2.776128160392904E-44; // 390891
ref_results[279] = 6.707067807352743E-41; // 390900
ref_results[280] = 1.486267827246535E-44; // 390901
ref_results[281] = 8.254668458855345E-45; // 390910
ref_results[282] = 1.662857643288891E-47; // 390911
ref_results[283] = 6.616404237868351E-51; // 390920
ref_results[290] = 5.473145406431442E-57; // 400880
ref_results[291] = 3.234531789646276E-49; // 400890
ref_results[292] = 1.277043460930664E-40; // 400900
ref_results[293] = 9.309538331297913E-46; // 400910
ref_results[294] = 2.550685385614637E-49; // 400920
ref_results[295] = 1.966073064306653E-54; // 400930
ref_results[296] = 1.120262263744952E-58; // 400940
ref_results[903] = 1.445533064390115E-31; // 20030
ref_results[904] = 1.811396993000019E-07; // 20040
ref_results[909] = 2.344711403852593E-32; // 802060
ref_results[910] = 3.422166241413627E-38; // 812030
ref_results[911] = 1.993182228163461E-31; // 812050
ref_results[912] = 5.227528401024175E-31; // 812060
ref_results[913] = 6.548252485477763E-24; // 812070
ref_results[914] = 9.316968346610693E-22; // 812080
ref_results[915] = 5.062073826283403E-26; // 812090
ref_results[916] = 6.102282804300658E-32; // 812100
ref_results[917] = 8.333115045112835E-39; // 822030
ref_results[918] = 1.324299867168110E-32; // 822040
ref_results[919] = 6.505350986649079E-29; // 822050
ref_results[920] = 1.270744440507311E-22; // 822060
ref_results[921] = 3.381502045491616E-20; // 822070
ref_results[922] = 4.728553000358787E-30; // 822071
ref_results[923] = 1.878194056174581E-17; // 822080
ref_results[924] = 2.132629289454312E-22; // 822090
ref_results[925] = 1.024494664023012E-18; // 822100
ref_results[926] = 4.970525771039019E-23; // 822110
ref_results[927] = 5.432630287056076E-19; // 822120
ref_results[928] = 5.682193064849352E-27; // 822140
ref_results[929] = 1.303866668567771E-35; // 832060
ref_results[930] = 7.630146258794625E-30; // 832070
ref_results[931] = 1.424064748501197E-26; // 832080
ref_results[932] = 2.019027388666536E-20; // 832090
ref_results[933] = 3.069907877757404E-26; // 832101
ref_results[934] = 5.093736089353635E-22; // 832100
ref_results[935] = 2.946332427338660E-24; // 832110
ref_results[936] = 5.141968469858545E-20; // 832120
ref_results[938] = 5.019614702899778E-23; // 832130
ref_results[939] = 4.217332300174989E-27; // 832140
ref_results[940] = 1.332762493186280E-38; // 842070
ref_results[941] = 8.117955049244134E-31; // 842080
ref_results[942] = 1.784508338506668E-27; // 842090
ref_results[943] = 1.422875639692061E-21; // 842100
ref_results[944] = 5.239689631351156E-34; // 842111
ref_results[945] = 3.267876192834555E-29; // 842110
ref_results[946] = 2.710841221927104E-30; // 842120
ref_results[947] = 7.546373079228309E-32; // 842130
ref_results[948] = 8.797059289485198E-29; // 842140
ref_results[949] = 4.088346331400481E-29; // 842150
ref_results[950] = 2.102272689532600E-24; // 842160
ref_results[951] = 6.579777017033306E-28; // 842180
ref_results[952] = 1.475954212336916E-36; // 852160
ref_results[953] = 5.939073377043200E-28; // 852170
ref_results[954] = 1.061207638101118E-33; // 852180
ref_results[955] = 7.811858181495438E-40; // 862160
ref_results[956] = 6.950371482994227E-34; // 862170
ref_results[957] = 1.873980887843589E-26; // 862180
ref_results[958] = 9.090314750958872E-26; // 862190
ref_results[959] = 8.061129152048996E-22; // 862200
ref_results[960] = 1.168683048662327E-24; // 862220
ref_results[961] = 1.352772781714808E-31; // 872200
ref_results[962] = 5.406077912988622E-24; // 872210
ref_results[963] = 5.746454298970071E-29; // 872220
ref_results[964] = 1.094949005982117E-24; // 872230
ref_results[965] = 3.124743062210870E-37; // 882200
ref_results[966] = 2.034607834124962E-23; // 882220
ref_results[967] = 2.266954978907912E-20; // 882230
ref_results[968] = 4.584882368179399E-18; // 882240
ref_results[969] = 3.890781563263043E-20; // 882250
ref_results[970] = 2.108583810111903E-19; // 882260
ref_results[971] = 2.928430998098310E-24; // 882270
ref_results[972] = 7.847461683326863E-21; // 882280
ref_results[973] = 5.429908345495038E-28; // 892240
ref_results[974] = 1.588986542080390E-20; // 892250
ref_results[975] = 1.188979690511837E-22; // 892260
ref_results[976] = 4.131590937403487E-17; // 892270
ref_results[977] = 3.519690190797210E-20; // 892280
ref_results[978] = 9.821266725283639E-22; // 902260
ref_results[979] = 5.422365706270610E-20; // 902270
ref_results[980] = 1.037602492419769E-15; // 902280
ref_results[981] = 2.814532448023277E-16; // 902290
ref_results[982] = 2.621092750882654E-13; // 902300
ref_results[983] = 3.479451481701696E-13; // 902310
ref_results[984] = 1.277506889544606E-09; // 902320
ref_results[985] = 2.489560939885665E-15; // 902330
ref_results[986] = 1.488824307058461E-11; // 902340
ref_results[987] = 2.029032354354460E-28; // 912280
ref_results[988] = 8.897122229105928E-21; // 912290
ref_results[989] = 1.506278898095940E-17; // 912300
ref_results[990] = 1.668616068351786E-11; // 912310
ref_results[991] = 4.774549547704941E-14; // 912320
ref_results[992] = 3.145801717827907E-12; // 912330
ref_results[993] = 1.381781128852183E-18; // 912341
ref_results[994] = 1.727133411615449E-13; // 912340
ref_results[995] = 2.674746681420509E-14; // 912350
ref_results[996] = 9.611053142454420E-19; // 922300
ref_results[997] = 7.033013285942588E-19; // 922310
ref_results[998] = 1.319266017531220E-12; // 922320
ref_results[999] = 4.808340236001484E-10; // 922330
ref_results[1000] = 7.518957013531661E-07; // 922340
ref_results[1001] = 8.453041074683207E-02; // 922350
ref_results[1002] = 1.655797392897883E-03; // 922360
ref_results[1003] = 5.094162033729479E-06; // 922370
ref_results[1004] = 1.119766774248877E+00; // 922380
ref_results[1005] = 6.907970761135962E-07; // 922390
ref_results[1006] = 4.967187645216405E-23; // 922400
ref_results[1007] = 1.569175789195704E-26; // 922410
ref_results[1008] = 4.027681966842273E-21; // 932340
ref_results[1009] = 2.999080977074398E-14; // 932350
ref_results[1010] = 8.994007511323843E-13; // 932361
ref_results[1011] = 4.941552315636757E-12; // 932360
ref_results[1012] = 2.785777809109039E-05; // 932370
ref_results[1013] = 7.501192882150871E-08; // 932380
ref_results[1014] = 1.565111555262251E-03; // 932390
ref_results[1015] = 3.434109946575511E-09; // 932401
ref_results[1016] = 1.729074692213092E-08; // 932400
ref_results[1017] = 7.816571808174786E-17; // 932410
ref_results[1018] = 1.115274144949748E-11; // 942360
ref_results[1019] = 1.099370001585738E-18; // 942371
ref_results[1020] = 4.410546827542435E-11; // 942370
ref_results[1021] = 9.325335845592878E-07; // 942380
ref_results[1022] = 3.591569495544841E-02; // 942390
ref_results[1023] = 2.524796095301196E-03; // 942400
ref_results[1024] = 5.534508081985129E-04; // 942410
ref_results[1025] = 1.467060657943838E-05; // 942420
ref_results[1026] = 4.412534274616450E-09; // 942430
ref_results[1027] = 2.598256530344929E-12; // 942440
ref_results[1028] = 1.393114609728429E-16; // 942450
ref_results[1029] = 6.707410293457373E-33; // 942460
ref_results[1030] = 2.093088327603913E-35; // 942470
ref_results[1031] = 5.112429862733608E-17; // 952390
ref_results[1032] = 5.231290670161314E-14; // 952400
ref_results[1033] = 1.818039812635308E-06; // 952410
ref_results[1034] = 8.949900805231481E-09; // 952421
ref_results[1035] = 4.657204172290918E-09; // 952420
ref_results[1036] = 2.976170629578854E-07; // 952430
ref_results[1037] = 1.107018070400006E-11; // 952441
ref_results[1038] = 1.675115563561827E-11; // 952440
ref_results[1039] = 2.700126963655830E-17; // 952450
ref_results[1040] = 3.647268431328806E-26; // 952460
ref_results[1041] = 3.487554469407710E-29; // 952470
ref_results[1042] = 2.973381649638314E-18; // 962400
ref_results[1043] = 1.608758321033572E-15; // 962410
ref_results[1044] = 7.660837041436055E-08; // 962420
ref_results[1045] = 1.519131407840924E-10; // 962430
ref_results[1046] = 7.599194195910574E-09; // 962440
ref_results[1047] = 5.545300949122652E-11; // 962450
ref_results[1048] = 3.247225044668807E-13; // 962460
ref_results[1049] = 3.078513525525379E-16; // 962470
ref_results[1050] = 1.512443921892103E-18; // 962480
ref_results[1051] = 1.939950446050524E-23; // 962490
ref_results[1052] = 2.881520652090972E-26; // 962500
ref_results[1053] = 6.796897666108897E-31; // 962510
ref_results[1054] = 3.521759800197049E-39; // 972450
ref_results[1055] = 1.696483317112431E-36; // 972460
ref_results[1056] = 6.924006569009737E-29; // 972470
ref_results[1057] = 2.829883262013560E-27; // 972480
ref_results[1058] = 1.892735684197859E-28; // 972481
ref_results[1059] = 2.508961074116349E-21; // 972490
ref_results[1060] = 4.068668713432077E-24; // 972500
ref_results[1061] = 1.187149832787075E-28; // 972510
ref_results[1062] = 8.430112564047697E-38; // 982460
ref_results[1063] = 8.204343204453090E-28; // 982480
ref_results[1064] = 4.223585370681932E-23; // 982490
ref_results[1065] = 1.604229601155548E-22; // 982500
ref_results[1066] = 1.290665499744707E-23; // 982510
ref_results[1067] = 5.009302816843058E-25; // 982520
ref_results[1068] = 1.860500482692042E-28; // 982530
ref_results[1069] = 5.269636493939523E-32; // 982540
ref_results[1070] = 3.818891844838667E-38; // 982550
ref_results[1071] = 1.839669136229831E-38; // 992510
ref_results[1072] = 7.408824953740139E-36; // 992520
ref_results[1073] = 3.548256455625710E-29; // 992530
ref_results[1074] = 3.283476466848479E-31; // 992541
ref_results[1075] = 4.962032218464619E-32; // 992540
ref_results[1076] = 6.402305244332715E-33; // 992550
ref_results[1077] = 1.514684971247502E-06; // 10030
ref_results[1078] = 7.083717284246387E-09; // 20030
ref_results[1079] = 2.555068302766253E-05; // 20040
ref_results[1080] = 3.141144428033830E-20; // 260650
ref_results[1081] = 2.899518117667952E-20; // 270650
ref_results[1082] = 2.189419132748700E-16; // 280650
ref_results[1083] = 1.306631708808731E-13; // 290650
ref_results[1084] = 1.505481525239073E-23; // 240660
ref_results[1085] = 1.421332480700972E-20; // 250660
ref_results[1086] = 1.758024322530451E-18; // 260660
ref_results[1087] = 2.183069000652512E-18; // 270660
ref_results[1088] = 2.140706363207019E-12; // 280660
ref_results[1089] = 3.354744471253299E-15; // 290660
ref_results[1090] = 4.868262034311479E-11; // 300660
ref_results[1091] = 1.721231909022267E-26; // 310660
ref_results[1093] = 2.093332876710170E-23; // 240670
ref_results[1094] = 8.390201122571938E-21; // 250670
ref_results[1095] = 3.060853260929948E-18; // 260670
ref_results[1096] = 9.802154873569658E-18; // 270670
ref_results[1097] = 6.539062543042166E-16; // 280670
ref_results[1098] = 6.910866204874877E-12; // 290670
ref_results[1099] = 1.430796525013062E-10; // 300670
ref_results[1100] = 2.766672428968891E-23; // 310670
ref_results[1101] = 8.646200304175715E-40; // 320670
ref_results[1102] = 1.070839251231786E-21; // 250680
ref_results[1103] = 7.541120261242403E-19; // 260680
ref_results[1104] = 5.786540953354546E-18; // 270680
ref_results[1105] = 1.904905451633796E-15; // 280680
ref_results[1106] = 2.145199118011541E-15; // 290680
ref_results[1107] = 6.017998417810157E-16; // 290681
ref_results[1108] = 3.054979013098324E-10; // 300680
ref_results[1109] = 3.057186114401135E-19; // 310680
ref_results[1110] = 9.394266450070257E-28; // 320680
ref_results[1111] = 7.306630999769405E-23; // 250690
ref_results[1112] = 1.588150884204006E-19; // 260690
ref_results[1113] = 6.771974817371755E-18; // 270690
ref_results[1114] = 1.560525734332931E-15; // 280690
ref_results[1115] = 2.930803830656180E-14; // 290690
ref_results[1116] = 5.851966487875564E-13; // 300690
ref_results[1117] = 6.348884620805600E-14; // 300691
ref_results[1118] = 6.819239048574969E-10; // 310690
ref_results[1119] = 2.171731472359075E-21; // 320690
ref_results[1121] = 3.879442303023852E-20; // 260700
ref_results[1122] = 2.586771813319469E-18; // 270700
ref_results[1123] = 1.630351646461024E-15; // 280700
ref_results[1124] = 1.201750163218768E-14; // 290700
ref_results[1125] = 1.140884095744015E-14; // 290701
ref_results[1126] = 1.735967665921193E-09; // 300700
ref_results[1127] = 4.522586794913645E-16; // 310700
ref_results[1128] = 9.629920894228580E-13; // 320700
ref_results[1129] = 8.066672181442502E-21; // 260710
ref_results[1130] = 8.591349932539136E-19; // 270710
ref_results[1131] = 6.875013181265683E-16; // 280710
ref_results[1132] = 1.459122456446904E-14; // 290710
ref_results[1133] = 1.140301908893815E-13; // 300710
ref_results[1134] = 1.698876173953569E-12; // 300711
ref_results[1135] = 3.236952681929472E-09; // 310710
ref_results[1136] = 3.312551877167444E-15; // 320710
ref_results[1137] = 3.545393115894725E-23; // 320711
ref_results[1138] = 2.150012870246335E-25; // 330710
ref_results[1139] = 9.114581928150469E-22; // 260720
ref_results[1140] = 2.469965868478693E-19; // 270720
ref_results[1141] = 5.128423288282744E-16; // 280720
ref_results[1142] = 1.018433819130156E-14; // 290720
ref_results[1143] = 4.382686007374499E-10; // 300720
ref_results[1144] = 1.342837485578044E-10; // 310720
ref_results[1145] = 8.955713772906816E-09; // 320720
ref_results[1146] = 2.612987205537775E-18; // 330720
ref_results[1147] = 4.696461643246382E-31; // 340720
ref_results[1148] = 5.777216054017514E-20; // 270730
ref_results[1149] = 1.894643250316076E-16; // 280730
ref_results[1150] = 1.012031280294429E-14; // 290730
ref_results[1151] = 1.429356813603975E-13; // 300730
ref_results[1152] = 1.132568665223946E-10; // 310730
ref_results[1153] = 2.347129682191033E-08; // 320730
ref_results[1154] = 2.267058567259312E-16; // 320731
ref_results[1155] = 5.795569100311224E-15; // 330730
ref_results[1156] = 1.349834253922045E-23; // 340730
ref_results[1157] = 7.794879552138205E-25; // 340731
ref_results[1158] = 7.438706769244961E-21; // 270740
ref_results[1159] = 8.019941941757855E-17; // 280740
ref_results[1160] = 3.977551128273471E-15; // 290740
ref_results[1161] = 1.367011462472917E-12; // 300740
ref_results[1162] = 7.896774535724682E-12; // 310740
ref_results[1163] = 1.133887135838637E-14; // 310741
ref_results[1164] = 6.215094247775983E-08; // 320740
ref_results[1165] = 1.473739381851930E-13; // 330740
ref_results[1166] = 7.950878438925836E-14; // 340740
ref_results[1167] = 9.973525223951162E-22; // 270750
ref_results[1168] = 2.221982945783447E-17; // 280750
ref_results[1169] = 3.140462823175104E-15; // 290750
ref_results[1170] = 2.700855690467785E-13; // 300750
ref_results[1171] = 4.981497067093111E-12; // 310750
ref_results[1172] = 2.018219230501452E-10; // 320750
ref_results[1173] = 4.649427719135941E-14; // 320751
ref_results[1174] = 1.547001064001597E-07; // 330750
ref_results[1175] = 5.593127374707799E-25; // 330751
ref_results[1176] = 5.072018164674818E-15; // 340750
ref_results[1177] = 1.651156167717570E-30; // 350750
ref_results[1178] = 2.594373990436490E-18; // 280760
ref_results[1179] = 1.112577564549966E-15; // 290760
ref_results[1180] = 2.647404925163307E-13; // 300760
ref_results[1181] = 2.918715029872858E-12; // 310760
ref_results[1182] = 3.955253800143983E-07; // 320760
ref_results[1183] = 2.561940845793369E-11; // 330760
ref_results[1184] = 7.082119329767603E-10; // 340760
ref_results[1185] = 1.914622309939412E-19; // 280770
ref_results[1186] = 4.106381260660357E-16; // 290770
ref_results[1187] = 1.276768714404301E-13; // 300770
ref_results[1188] = 2.512168054565328E-12; // 310770
ref_results[1189] = 9.764779337707696E-09; // 320770
ref_results[1190] = 3.888859910211788E-13; // 320771
ref_results[1191] = 3.412800638680305E-08; // 330770
ref_results[1192] = 9.344591361740920E-07; // 340770
ref_results[1193] = 1.418591390521423E-14; // 340771
ref_results[1194] = 1.119938893834827E-16; // 350770
ref_results[1195] = 1.111898417425952E-19; // 350771
ref_results[1196] = 6.739812891445276E-28; // 360770
ref_results[1197] = 2.382555018356285E-20; // 280780
ref_results[1198] = 7.958642471417726E-17; // 290780
ref_results[1199] = 9.253535303743959E-14; // 300780
ref_results[1200] = 1.613979428065441E-12; // 310780
ref_results[1201] = 3.307559767365718E-09; // 320780
ref_results[1202] = 3.510146770897639E-09; // 330780
ref_results[1203] = 2.543479416825791E-06; // 340780
ref_results[1204] = 2.234824341930479E-17; // 350780
ref_results[1205] = 1.784784041205247E-17; // 360780
ref_results[1206] = 3.967054690380084E-18; // 290790
ref_results[1207] = 2.822892326215509E-14; // 300790
ref_results[1208] = 1.105422326284097E-12; // 310790
ref_results[1209] = 1.595124676805203E-11; // 320790
ref_results[1210] = 1.688791817126545E-11; // 320791
ref_results[1211] = 7.745384549678611E-10; // 330790
ref_results[1212] = 5.609561029886364E-06; // 340790
ref_results[1213] = 3.169286708588609E-10; // 340791
ref_results[1214] = 2.955218001217995E-09; // 350790
ref_results[1215] = 1.589563443615769E-17; // 350791
ref_results[1216] = 4.145412877072758E-17; // 360790
ref_results[1217] = 8.368499956182480E-21; // 360791
ref_results[1218] = 5.788858061772799E-41; // 370790
ref_results[1219] = 7.255383792375141E-20; // 290800
ref_results[1220] = 2.612029265272562E-15; // 300800
ref_results[1221] = 4.194775664411515E-13; // 310800
ref_results[1222] = 8.026993007777144E-11; // 320800
ref_results[1223] = 5.275941358113766E-11; // 330800
ref_results[1224] = 1.422366945148788E-05; // 340800
ref_results[1225] = 3.727523310355816E-14; // 350800
ref_results[1226] = 3.701378348739773E-13; // 350801
ref_results[1227] = 9.838021083178885E-11; // 360800
ref_results[1228] = 7.907930079541295E-17; // 300810
ref_results[1229] = 1.889927241491206E-13; // 310810
ref_results[1230] = 2.272773756914165E-11; // 320810
ref_results[1232] = 1.881552948113871E-10; // 330810
ref_results[1233] = 6.841931373854655E-09; // 340810
ref_results[1234] = 1.712677693130953E-09; // 340811
ref_results[1235] = 2.426564520796397E-05; // 350810
ref_results[1236] = 1.278669894059578E-11; // 360810
ref_results[1237] = 7.571690916758329E-18; // 360811
ref_results[1238] = 1.904847462699714E-18; // 370810
ref_results[1239] = 1.342178780351230E-17; // 300820
ref_results[1240] = 6.027680860014320E-14; // 310820
ref_results[1241] = 1.126304446073840E-11; // 320820
ref_results[1242] = 1.021709683455215E-10; // 330820
ref_results[1243] = 1.916849474329427E-11; // 330821
ref_results[1244] = 3.557129526823760E-05; // 340820
ref_results[1245] = 5.561270096421518E-09; // 350820
ref_results[1246] = 1.011555789816030E-11; // 350821
ref_results[1247] = 1.218188979775491E-07; // 360820
ref_results[1248] = 2.605164447690565E-19; // 300830
ref_results[1249] = 1.658013213738778E-15; // 310830
ref_results[1250] = 1.894686811683847E-12; // 320830
ref_results[1251] = 9.984815856720491E-11; // 330830
ref_results[1252] = 1.555513174164694E-08; // 340830
ref_results[1253] = 7.917246176951590E-11; // 340831
ref_results[1254] = 1.150672439516028E-07; // 350830
ref_results[1255] = 5.403684170932558E-05; // 360830
ref_results[1256] = 8.650286889368448E-08; // 360831
ref_results[1257] = 2.043732563301626E-12; // 370830
ref_results[1258] = 2.257936117696143E-18; // 380830
ref_results[1259] = 1.359608642710883E-14; // 310840
ref_results[1260] = 3.836158952938479E-13; // 320840
ref_results[1261] = 1.496030892035415E-11; // 330840
ref_results[1262] = 3.951816852540315E-09; // 340840
ref_results[1263] = 4.193898239981204E-08; // 350840
ref_results[1264] = 3.886049141799145E-10; // 350841
ref_results[1265] = 9.784955239519522E-05; // 360840
ref_results[1266] = 7.545067739982389E-12; // 370840
ref_results[1267] = 2.365335077504058E-13; // 380840
ref_results[1268] = 2.881296835409918E-18; // 310850
ref_results[1269] = 2.605202760298578E-14; // 320850
ref_results[1270] = 5.736985641054274E-12; // 330850
ref_results[1271] = 7.762895234838016E-10; // 340850
ref_results[1272] = 5.306694451378231E-09; // 350850
ref_results[1273] = 3.392628943175306E-05; // 360850
ref_results[1274] = 4.736366467659913E-07; // 360851
ref_results[1275] = 9.842872869886092E-05; // 370850
ref_results[1276] = 4.033904840045964E-13; // 380850
ref_results[1277] = 3.933493351369428E-16; // 380851
ref_results[1278] = 1.196818505640755E-25; // 390850
ref_results[1279] = 1.379257630750635E-17; // 310860
ref_results[1280] = 7.701990757421391E-13; // 320860
ref_results[1281] = 8.545056469640675E-12; // 330860
ref_results[1282] = 3.672751292522048E-10; // 340860
ref_results[1283] = 2.059630732919280E-09; // 350860
ref_results[1284] = 1.742186743075241E-04; // 360860
ref_results[1285] = 1.873623879448332E-08; // 370860
ref_results[1286] = 1.998858257296812E-13; // 370861
ref_results[1287] = 2.605446738513499E-08; // 380860
ref_results[1288] = 4.460634063269805E-15; // 320870
ref_results[1289] = 4.530573461197005E-13; // 330870
ref_results[1290] = 8.031105317287320E-11; // 340870
ref_results[1291] = 2.401474531400725E-09; // 350870
ref_results[1292] = 2.561074873829930E-07; // 360870
ref_results[1293] = 2.402026542389576E-04; // 370870
ref_results[1294] = 1.727865014196857E-09; // 380870
ref_results[1295] = 1.078267104486369E-12; // 380871
ref_results[1296] = 1.353310948344685E-14; // 390870
ref_results[1297] = 7.699251645749137E-20; // 390871
ref_results[1298] = 3.508992985516586E-26; // 400870
ref_results[1299] = 5.094799054014706E-17; // 320880
ref_results[1300] = 2.018779175593989E-13; // 330880
ref_results[1301] = 9.727474488362077E-12; // 340880
ref_results[1302] = 5.747394412268270E-10; // 350880
ref_results[1303] = 7.606656847851699E-07; // 360880
ref_results[1304] = 8.074593102260724E-08; // 370880
ref_results[1305] = 3.239219289762222E-04; // 380880
ref_results[1306] = 1.813834918257261E-11; // 390880
ref_results[1307] = 1.973814965936095E-16; // 400880
ref_results[1308] = 9.050612546205108E-20; // 320890
ref_results[1309] = 2.453956821727733E-16; // 330890
ref_results[1310] = 4.062849472349644E-13; // 340890
ref_results[1311] = 1.011559055783472E-10; // 350890
ref_results[1312] = 1.747147939888976E-08; // 360890
ref_results[1313] = 9.079366447361447E-08; // 370890
ref_results[1314] = 2.558507799148607E-04; // 380890
ref_results[1315] = 1.752802369779231E-04; // 390890
ref_results[1316] = 9.038379087565824E-14; // 390891
ref_results[1317] = 9.005562933686290E-15; // 400890
ref_results[1318] = 7.627097670987751E-19; // 400891
ref_results[1319] = 8.030343049935690E-27; // 410890
ref_results[1320] = 5.061753298549625E-18; // 330900
ref_results[1321] = 4.277426919260441E-14; // 340900
ref_results[1322] = 2.439236035645507E-11; // 350900
ref_results[1323] = 3.054608748356289E-09; // 360900
ref_results[1324] = 1.572352831923374E-08; // 370900
ref_results[1325] = 5.357855420728573E-09; // 370901
ref_results[1326] = 5.244908350204334E-04; // 380900
ref_results[1327] = 1.286268747990081E-07; // 390900
ref_results[1328] = 2.030720634331282E-11; // 390901
ref_results[1329] = 1.392599686450881E-06; // 400900
ref_results[1330] = 2.522241675834307E-17; // 400901
ref_results[1331] = 7.158891117416642E-24; // 410900
ref_results[1333] = 5.740208901195937E-19; // 330910
ref_results[1334] = 5.277407439370341E-15; // 340910
ref_results[1335] = 2.172714352365723E-12; // 350910
ref_results[1336] = 5.398997054702712E-10; // 360910
ref_results[1337] = 6.989078532801640E-09; // 370910
ref_results[1338] = 4.493687465338878E-06; // 380910
ref_results[1339] = 3.475501254200889E-04; // 390910
ref_results[1340] = 2.212891515693448E-07; // 390911
ref_results[1341] = 1.990095086327711E-04; // 400910
ref_results[1342] = 4.310115350838669E-15; // 410910
ref_results[1343] = 9.496845734163829E-21; // 410911
ref_results[1344] = 2.579019241548435E-28; // 420910
ref_results[1345] = 2.222507008668644E-20; // 330920
ref_results[1346] = 1.560849613799685E-16; // 340920
ref_results[1347] = 1.916310730586862E-13; // 350920
ref_results[1348] = 5.782151349465806E-11; // 360920
ref_results[1349] = 4.756357051446431E-10; // 370920
ref_results[1350] = 1.343482952350892E-06; // 380920
ref_results[1351] = 1.809021670536319E-06; // 390920
ref_results[1352] = 5.918645561025285E-04; // 400920
ref_results[1353] = 3.806966142074110E-13; // 410920
ref_results[1354] = 5.690254547979388E-18; // 410921
ref_results[1355] = 5.396075056422148E-22; // 420920
ref_results[1356] = 5.307123276238735E-18; // 340930
ref_results[1357] = 1.989632454180867E-14; // 350930
ref_results[1358] = 1.164176938940406E-11; // 360930
ref_results[1359] = 4.597565285835731E-10; // 370930
ref_results[1360] = 6.955311293839535E-08; // 380930
ref_results[1361] = 5.870441797948644E-06; // 390930
ref_results[1362] = 8.667485444553012E-12; // 390931
ref_results[1363] = 6.536835681034268E-04; // 400930
ref_results[1364] = 2.352214592634436E-11; // 410930
ref_results[1365] = 3.815850941957440E-11; // 410931
ref_results[1366] = 6.978243883366053E-16; // 420930
ref_results[1367] = 2.405690288736640E-18; // 420931
ref_results[1368] = 1.889795112966958E-37; // 430930
ref_results[1369] = 4.414211083745833E-19; // 340940
ref_results[1370] = 3.677310329382699E-15; // 350940
ref_results[1371] = 4.326233091248359E-13; // 360940
ref_results[1372] = 1.044084371596820E-10; // 370940
ref_results[1373] = 1.156612019250819E-08; // 380940
ref_results[1374] = 1.917982002643969E-07; // 390940
ref_results[1375] = 6.973210832752431E-04; // 400940
ref_results[1376] = 9.774543672430438E-10; // 410940
ref_results[1377] = 5.759199617107122E-14; // 410941
ref_results[1378] = 6.987570274886828E-11; // 420940
ref_results[1379] = 8.244132391428862E-18; // 350950
ref_results[1380] = 2.229930625705279E-14; // 360950
ref_results[1381] = 7.459364070284188E-12; // 370950
ref_results[1382] = 3.152995207118527E-09; // 380950
ref_results[1383] = 1.093991830025468E-07; // 390950
ref_results[1384] = 4.840500733582942E-04; // 400950
ref_results[1385] = 1.415572830815932E-04; // 410950
ref_results[1386] = 2.778660728474560E-07; // 410951
ref_results[1387] = 1.000513316858239E-04; // 420950
ref_results[1388] = 4.081595594465790E-23; // 430950
ref_results[1389] = 1.039971077766530E-22; // 430951
ref_results[1390] = 7.145132537716796E-36; // 440950
ref_results[1391] = 2.382185907496744E-18; // 350960
ref_results[1392] = 5.611780848350547E-14; // 360960
ref_results[1393] = 9.072203279722304E-13; // 370960
ref_results[1394] = 9.661240546031959E-11; // 380960
ref_results[1395] = 5.227755916070947E-10; // 390960
ref_results[1396] = 6.566642623223060E-10; // 390961
ref_results[1397] = 7.220102587031054E-04; // 400960
ref_results[1398] = 1.576407181945561E-08; // 410960
ref_results[1399] = 7.955452954272299E-07; // 420960
ref_results[1400] = 1.801524778473885E-20; // 430960
ref_results[1401] = 1.380530832783614E-26; // 440960
ref_results[1402] = 6.742709338031416E-20; // 350970
ref_results[1403] = 1.776715954302484E-15; // 360970
ref_results[1404] = 1.255762026165172E-13; // 370970
ref_results[1405] = 1.766011041157471E-11; // 380970
ref_results[1406] = 3.401272740137505E-10; // 390970
ref_results[1407] = 5.757684645231107E-11; // 390971
ref_results[1408] = 1.103343744857840E-05; // 400970
ref_results[1409] = 7.982408453830739E-07; // 410970
ref_results[1410] = 1.555679379535956E-11; // 410971
ref_results[1411] = 7.178431221796820E-04; // 420970
ref_results[1412] = 3.263233092328170E-13; // 430970
ref_results[1413] = 1.902475167980448E-13; // 430971
ref_results[1414] = 5.667254316208180E-21; // 440970
ref_results[1415] = 1.088576652170428E-15; // 360980
ref_results[1416] = 1.291594441319917E-14; // 370980
ref_results[1417] = 1.230638270720364E-11; // 380980
ref_results[1418] = 3.509851292067264E-11; // 390980
ref_results[1419] = 7.533679829528263E-11; // 390981
ref_results[1420] = 5.596114023130373E-09; // 400980
ref_results[1421] = 5.326561106680537E-10; // 410980
ref_results[1422] = 4.057710935194046E-09; // 410981
ref_results[1423] = 7.299253923622760E-04; // 420980
ref_results[1424] = 4.455413274811608E-10; // 430980
ref_results[1425] = 2.302952607877591E-14; // 440980
ref_results[1426] = 4.657323061611490E-19; // 360990
ref_results[1427] = 5.244342151979958E-16; // 370990
ref_results[1428] = 8.564627679575493E-13; // 380990
ref_results[1429] = 8.664217075346027E-11; // 390990
ref_results[1430] = 3.694794038667969E-10; // 400990
ref_results[1431] = 2.676906209266644E-09; // 410990
ref_results[1432] = 3.275270028592352E-09; // 410991
ref_results[1433] = 4.625688662376886E-05; // 420990
ref_results[1434] = 7.182943063145295E-04; // 430990
ref_results[1435] = 3.702054098459011E-06; // 430991
ref_results[1436] = 2.372204812996705E-08; // 440990
ref_results[1437] = 7.411568441075492E-24; // 450990
ref_results[1438] = 2.250942809819757E-29; // 450991
ref_results[1439] = 9.467204505800045E-40; // 460990
ref_results[1440] = 8.715740388996214E-19; // 361000
ref_results[1441] = 2.557747429454420E-14; // 371000
ref_results[1442] = 1.760393830140591E-13; // 381000
ref_results[1443] = 1.243220303236490E-11; // 391000
ref_results[1444] = 1.235763905626253E-09; // 401000
ref_results[1445] = 2.875425622281897E-10; // 411000
ref_results[1446] = 5.275499731087804E-11; // 411001
ref_results[1447] = 8.212388849494617E-04; // 421000
ref_results[1448] = 5.246685082429995E-11; // 431000
ref_results[1449] = 7.776731808111959E-06; // 441000
ref_results[1450] = 1.533898880599505E-18; // 371010
ref_results[1451] = 1.126446505353884E-14; // 381010
ref_results[1452] = 2.899588414962625E-12; // 391010
ref_results[1453] = 2.076694015423462E-10; // 401010
ref_results[1454] = 1.264708659887165E-09; // 411010
ref_results[1455] = 1.606993362828508E-07; // 421010
ref_results[1456] = 1.565775758904171E-07; // 431010
ref_results[1457] = 6.990942634415620E-04; // 441010
ref_results[1458] = 3.373850949245630E-15; // 451010
ref_results[1459] = 2.840903294115131E-16; // 451011
ref_results[1460] = 1.731837473909424E-21; // 461010
ref_results[1461] = 1.088945389997674E-19; // 371020
ref_results[1462] = 4.086173235777169E-16; // 381020
ref_results[1463] = 1.281292012818098E-12; // 391020
ref_results[1464] = 1.560261816964260E-10; // 401020
ref_results[1465] = 1.203903942155517E-10; // 411020
ref_results[1466] = 1.668652262394276E-10; // 411021
ref_results[1467] = 1.159824295703687E-07; // 421020
ref_results[1468] = 9.070164629073268E-10; // 431020
ref_results[1469] = 1.856124720729023E-10; // 431021
ref_results[1470] = 6.488748131059934E-04; // 441020
ref_results[1471] = 5.018946625750004E-11; // 451020
ref_results[1472] = 3.181596719886432E-11; // 451021
ref_results[1473] = 8.841628646998202E-13; // 461020
ref_results[1474] = 1.116033174164573E-17; // 381030
ref_results[1475] = 2.912868732274328E-14; // 391030
ref_results[1476] = 1.675569923703663E-11; // 401030
ref_results[1477] = 1.236974710329795E-10; // 411030
ref_results[1478] = 1.102644097034037E-08; // 421030
ref_results[1479] = 9.152491373973569E-09; // 431030
ref_results[1480] = 3.392205395164930E-04; // 441030
ref_results[1481] = 2.554830131167197E-04; // 451030
ref_results[1482] = 3.322171141864102E-07; // 451031
ref_results[1483] = 1.423775927573414E-12; // 461030
ref_results[1484] = 2.000591433247540E-37; // 471030
ref_results[1485] = 8.677832977763155E-19; // 381040
ref_results[1486] = 3.269984133190118E-15; // 391040
ref_results[1487] = 3.439762685500331E-12; // 401040
ref_results[1488] = 8.893919184947077E-11; // 411040
ref_results[1489] = 1.436733138319116E-11; // 411041
ref_results[1490] = 7.503651430948235E-09; // 421040
ref_results[1491] = 1.490329036828629E-07; // 431040
ref_results[1492] = 4.725469702942940E-04; // 441040
ref_results[1493] = 1.906171800401103E-10; // 451040
ref_results[1494] = 8.925195960731819E-11; // 451041
ref_results[1495] = 8.243081230053805E-06; // 461040
ref_results[1496] = 1.248410671432572E-19; // 381050
ref_results[1497] = 1.680277377440652E-16; // 391050
ref_results[1498] = 1.138952913409758E-12; // 401050
ref_results[1499] = 4.032171448149461E-11; // 411050
ref_results[1500] = 3.042990322593144E-09; // 421050
ref_results[1501] = 5.181154872044139E-08; // 431050
ref_results[1502] = 1.825726012621626E-06; // 441050
ref_results[1503] = 1.331319430595209E-05; // 451050
ref_results[1504] = 1.381245450790299E-09; // 451051
ref_results[1505] = 3.394076503771081E-04; // 461050
ref_results[1506] = 4.175373323272606E-22; // 471050
ref_results[1507] = 1.845072787942445E-25; // 471051
ref_results[1508] = 1.753690546496315E-28; // 481050
ref_results[1509] = 3.178875625517664E-19; // 391060
ref_results[1510] = 1.638784110974831E-15; // 401060
ref_results[1511] = 1.304934489155700E-12; // 411060
ref_results[1512] = 3.821703840336120E-10; // 421060
ref_results[1513] = 2.761530066085903E-09; // 431060
ref_results[1514] = 2.518392810591382E-04; // 441060
ref_results[1515] = 4.436843527123420E-10; // 451060
ref_results[1516] = 5.936082486618593E-09; // 451061
ref_results[1517] = 4.361529938984366E-05; // 461060
ref_results[1518] = 8.547790212678796E-20; // 471060
ref_results[1519] = 8.803419430624081E-17; // 471061
ref_results[1520] = 1.838001176408762E-18; // 481060
ref_results[1521] = 2.777337967184338E-20; // 391070
ref_results[1522] = 9.111867898194950E-17; // 401070
ref_results[1523] = 1.005674533016679E-13; // 411070
ref_results[1524] = 4.654090714649212E-11; // 421070
ref_results[1525] = 9.631244561409769E-10; // 431070
ref_results[1526] = 1.346192704854015E-08; // 441070
ref_results[1527] = 7.957037898399457E-08; // 451070
ref_results[1528] = 1.922782995895674E-04; // 461070
ref_results[1529] = 6.765823495566998E-14; // 461071
ref_results[1530] = 1.969211670678200E-12; // 471070
ref_results[1531] = 6.479558158465344E-19; // 471071
ref_results[1532] = 4.086574811735809E-20; // 481070
ref_results[1534] = 1.920595968109580E-22; // 391080
ref_results[1535] = 3.639675180024370E-18; // 401080
ref_results[1536] = 5.850502517830678E-15; // 411080
ref_results[1537] = 5.012353261294646E-12; // 421080
ref_results[1538] = 8.433393710981429E-11; // 431080
ref_results[1539] = 1.048835069541587E-08; // 441080
ref_results[1540] = 6.511440397408263E-10; // 451080
ref_results[1541] = 1.229270835243043E-10; // 451081
ref_results[1542] = 1.217909337016947E-04; // 461080
ref_results[1543] = 1.426700390141511E-15; // 471080
ref_results[1544] = 1.340528921971272E-11; // 471081
ref_results[1545] = 2.002120814225433E-11; // 481080
ref_results[1546] = 8.622094475641194E-19; // 401090
ref_results[1547] = 1.637997087795708E-15; // 411090
ref_results[1548] = 2.464690275065061E-13; // 421090
ref_results[1549] = 6.812188106324904E-12; // 431090
ref_results[1550] = 8.718464701157869E-10; // 441090
ref_results[1551] = 2.121341248947827E-09; // 451090
ref_results[1552] = 1.319725134795438E-06; // 461090
ref_results[1553] = 2.743748992289450E-12; // 461091
ref_results[1554] = 7.887426844242311E-05; // 471090
ref_results[1555] = 1.058624328667029E-09; // 471091
ref_results[1556] = 7.703833257968824E-13; // 481090
ref_results[1557] = 5.188190292188718E-26; // 491090
ref_results[1558] = 2.256332006823517E-20; // 401100
ref_results[1559] = 6.098073413513446E-17; // 411100
ref_results[1560] = 2.531360905313479E-14; // 421100
ref_results[1561] = 1.002494883206088E-12; // 431100
ref_results[1562] = 1.316120494098195E-10; // 441100
ref_results[1563] = 3.716330449896843E-11; // 451100
ref_results[1564] = 7.628622029430824E-12; // 451101
ref_results[1565] = 3.725920253093509E-05; // 461100
ref_results[1566] = 3.577199221373676E-11; // 471100
ref_results[1567] = 1.254929291109540E-07; // 471101
ref_results[1568] = 2.929570114658742E-06; // 481100
ref_results[1569] = 1.705105601371472E-17; // 411110
ref_results[1570] = 3.156918181414439E-15; // 421110
ref_results[1571] = 7.111452684167686E-14; // 431110
ref_results[1572] = 1.012917074534021E-11; // 441110
ref_results[1573] = 6.119457692128196E-11; // 451110
ref_results[1574] = 7.812864107377789E-09; // 461110
ref_results[1575] = 1.366452801654305E-11; // 461111
ref_results[1576] = 3.220676643249850E-06; // 471110
ref_results[1577] = 3.500478753867358E-10; // 471111
ref_results[1578] = 1.439321225451273E-05; // 481110
ref_results[1579] = 4.507721265054904E-14; // 481111
ref_results[1580] = 3.739039904484285E-21; // 491110
ref_results[1581] = 3.853960831280491E-27; // 491111
ref_results[1582] = 3.188597823162121E-27; // 501110
ref_results[1583] = 1.227453583213560E-19; // 411120
ref_results[1584] = 4.450601752222358E-16; // 421120
ref_results[1585] = 1.301782822762322E-14; // 431120
ref_results[1586] = 3.264084852994568E-12; // 441120
ref_results[1587] = 8.740184185951846E-12; // 451120
ref_results[1588] = 1.901035828922360E-07; // 461120
ref_results[1589] = 2.831457950744406E-08; // 471120
ref_results[1590] = 8.138535928294973E-06; // 481120
ref_results[1591] = 1.164042365833527E-20; // 491120
ref_results[1592] = 1.289510312903914E-20; // 491121
ref_results[1593] = 1.128722110986903E-17; // 501120
ref_results[1594] = 2.302016082887869E-20; // 411130
ref_results[1595] = 2.481701024929520E-17; // 421130
ref_results[1596] = 1.803770568020802E-15; // 431130
ref_results[1597] = 6.489640291897956E-13; // 441130
ref_results[1598] = 4.751911345355716E-12; // 451130
ref_results[1599] = 1.601975461083886E-10; // 461130
ref_results[1600] = 2.178316378914423E-08; // 471130
ref_results[1601] = 1.131442793440729E-10; // 471131
ref_results[1602] = 1.059861532393810E-06; // 481130
ref_results[1603] = 1.219105672614301E-08; // 481131
ref_results[1604] = 8.158108994261254E-11; // 491130
ref_results[1605] = 9.662485473384048E-20; // 491131
ref_results[1606] = 5.480926983164926E-19; // 501130
ref_results[1607] = 3.549383274018661E-22; // 501131
ref_results[1609] = 2.394145610154113E-18; // 421140
ref_results[1610] = 9.021657777563145E-16; // 431140
ref_results[1611] = 1.759331497351581E-13; // 441140
ref_results[1612] = 1.843030359244411E-12; // 451140
ref_results[1613] = 1.844661487111012E-10; // 461140
ref_results[1614] = 5.916843064891585E-12; // 471140
ref_results[1615] = 9.108267884642418E-06; // 481140
ref_results[1616] = 3.614080125987217E-17; // 491140
ref_results[1617] = 1.067392134736669E-12; // 491141
ref_results[1618] = 1.157209789521844E-12; // 501140
ref_results[1619] = 6.553399539000067E-20; // 421150
ref_results[1620] = 7.627671966783666E-17; // 431150
ref_results[1621] = 3.608509491205079E-14; // 441150
ref_results[1622] = 4.491360797347761E-13; // 451150
ref_results[1623] = 2.365059925423381E-11; // 461150
ref_results[1624] = 1.161831755101484E-09; // 471150
ref_results[1625] = 5.835068558495568E-13; // 471151
ref_results[1626] = 1.765754566732255E-07; // 481150
ref_results[1627] = 1.186677616509804E-07; // 481151
ref_results[1628] = 2.774881884035831E-06; // 491150
ref_results[1629] = 1.478732342372164E-08; // 491151
ref_results[1630] = 1.568988037936905E-07; // 501150
ref_results[1631] = 4.762705507579222E-39; // 511150
ref_results[1634] = 3.212991457693707E-18; // 431160
ref_results[1635] = 4.193407643905743E-15; // 441160
ref_results[1636] = 1.126690813780063E-13; // 451160
ref_results[1637] = 1.073005642841723E-11; // 461160
ref_results[1638] = 1.686927553377274E-10; // 471160
ref_results[1639] = 6.686084892807439E-13; // 471161
ref_results[1640] = 3.952147979007444E-06; // 481160
ref_results[1641] = 3.999521966577042E-13; // 491160
ref_results[1642] = 1.528583316557959E-10; // 491161
ref_results[1643] = 1.699532596347449E-07; // 501160
ref_results[1644] = 1.306890452309122E-19; // 431170
ref_results[1645] = 2.085286078042152E-16; // 441170
ref_results[1646] = 2.094967640461778E-14; // 451170
ref_results[1647] = 2.549477641526965E-12; // 461170
ref_results[1648] = 5.821442423785370E-11; // 471170
ref_results[1649] = 1.005639848266207E-12; // 471171
ref_results[1650] = 8.766891793245449E-09; // 481170
ref_results[1651] = 3.817219330997886E-10; // 481171
ref_results[1652] = 1.572412814589136E-09; // 491170
ref_results[1653] = 5.301847168246504E-09; // 491171
ref_results[1654] = 3.548749876938425E-06; // 501170
ref_results[1655] = 1.036871550786125E-09; // 501171
ref_results[1656] = 7.579389291356664E-24; // 511170
ref_results[1657] = 1.563452370982114E-38; // 521170
ref_results[1658] = 2.231619362399476E-20; // 431180
ref_results[1659] = 4.598468873668443E-17; // 441180
ref_results[1660] = 3.287800444689926E-15; // 451180
ref_results[1661] = 4.748453866160153E-13; // 461180
ref_results[1662] = 2.149635353717126E-12; // 471180
ref_results[1663] = 4.478003449221607E-13; // 471181
ref_results[1664] = 2.408229322663403E-09; // 481180
ref_results[1665] = 3.994981859990107E-12; // 491180
ref_results[1666] = 9.522994174319964E-14; // 491181
ref_results[1667] = 2.914602920070761E-06; // 501180
ref_results[1668] = 7.919088397089181E-21; // 511180
ref_results[1669] = 9.503152071318760E-19; // 511181
ref_results[1670] = 5.069904505923837E-29; // 521180
ref_results[1671] = 2.633452186803097E-18; // 441190
ref_results[1672] = 9.645001005388657E-16; // 451190
ref_results[1673] = 5.942842900401875E-14; // 461190
ref_results[1674] = 9.453461850687518E-13; // 471190
ref_results[1675] = 1.001115742211250E-10; // 481190
ref_results[1676] = 2.207524906860830E-11; // 481191
ref_results[1677] = 6.147968666655990E-11; // 491190
ref_results[1678] = 4.381464051517965E-10; // 491191
ref_results[1679] = 2.965127699645711E-06; // 501190
ref_results[1680] = 2.032732590290643E-10; // 501191
ref_results[1681] = 2.059662496909585E-15; // 511190
ref_results[1682] = 8.098418289455236E-24; // 521190
ref_results[1683] = 2.419424075596324E-19; // 441200
ref_results[1684] = 9.579960355164906E-17; // 451200
ref_results[1685] = 2.923310603340895E-14; // 461200
ref_results[1686] = 1.984967987412453E-13; // 471200
ref_results[1687] = 3.004764396804982E-14; // 471201
ref_results[1688] = 3.631652128050373E-11; // 481200
ref_results[1689] = 2.268475194062133E-12; // 491200
ref_results[1690] = 2.045811237791296E-12; // 491201
ref_results[1691] = 2.876294288292165E-06; // 501200
ref_results[1692] = 7.966570787685968E-16; // 511200
ref_results[1693] = 3.024865928674776E-13; // 511201
ref_results[1694] = 1.348802187201509E-16; // 521200
ref_results[1695] = 1.836867257542082E-17; // 451210
ref_results[1696] = 2.879929364818206E-15; // 461210
ref_results[1697] = 9.471319758900019E-14; // 471210
ref_results[1698] = 4.995700220040319E-12; // 481210
ref_results[1699] = 2.267993780510562E-12; // 481211
ref_results[1700] = 1.525164006066897E-11; // 491210
ref_results[1701] = 5.519803444324230E-11; // 491211
ref_results[1702] = 8.238464117193022E-08; // 501210
ref_results[1703] = 1.987373237052527E-07; // 501211
ref_results[1704] = 3.002071416155404E-06; // 511210
ref_results[1705] = 5.635300562819039E-15; // 521210
ref_results[1706] = 1.024603665743551E-14; // 521211
ref_results[1707] = 3.971195733847271E-25; // 531210
ref_results[1708] = 5.411088842932955E-19; // 451220
ref_results[1709] = 9.540781416943538E-16; // 461220
ref_results[1710] = 1.063957789167932E-14; // 471220
ref_results[1711] = 3.060313521229614E-14; // 471221
ref_results[1712] = 2.882504815993148E-12; // 481220
ref_results[1713] = 1.036547603010465E-12; // 491220
ref_results[1714] = 2.903272349698803E-12; // 491221
ref_results[1715] = 3.852248795556732E-06; // 501220
ref_results[1716] = 1.754160809844688E-09; // 511220
ref_results[1717] = 2.067210159651836E-13; // 511221
ref_results[1718] = 1.643165649875298E-08; // 521220
ref_results[1719] = 9.125875199414204E-17; // 461230
ref_results[1720] = 5.196211979121317E-15; // 471230
ref_results[1721] = 6.189138363036265E-13; // 481230
ref_results[1722] = 3.952439335697453E-15; // 481231
ref_results[1723] = 3.412543653524964E-12; // 491230
ref_results[1724] = 1.134607217836862E-11; // 491231
ref_results[1725] = 1.411423842567112E-06; // 501230
ref_results[1726] = 1.417143795728499E-09; // 501231
ref_results[1727] = 2.451613887849574E-06; // 511230
ref_results[1728] = 4.171973195213404E-11; // 521230
ref_results[1729] = 4.730709129772620E-11; // 521231
ref_results[1730] = 9.447649305715675E-17; // 531230
ref_results[1731] = 1.293956026281418E-17; // 461240
ref_results[1732] = 2.194799583141494E-15; // 471240
ref_results[1733] = 2.917984872366198E-13; // 481240
ref_results[1734] = 1.792317897606079E-12; // 491240
ref_results[1735] = 1.268616210358550E-12; // 491241
ref_results[1736] = 6.526239648211540E-06; // 501240
ref_results[1737] = 9.933137773678236E-09; // 511240
ref_results[1738] = 1.226251464608875E-13; // 511241
ref_results[1739] = 4.837917314223827E-09; // 521240
ref_results[1740] = 3.219723290017077E-19; // 531240
ref_results[1741] = 8.523910980385044E-24; // 541240
ref_results[1742] = 2.296052815067909E-16; // 471250
ref_results[1743] = 7.029211055905330E-14; // 481250
ref_results[1744] = 1.173927046597867E-12; // 491250
ref_results[1745] = 4.830385081930200E-12; // 491251
ref_results[1746] = 1.197772710761743E-06; // 501250
ref_results[1747] = 5.085118614448286E-10; // 501251
ref_results[1748] = 7.462769503646588E-06; // 511250
ref_results[1749] = 1.517763797474629E-07; // 521250
ref_results[1750] = 3.176804213008975E-08; // 521251
ref_results[1751] = 3.511374723411011E-16; // 531250
ref_results[1752] = 3.382088135551948E-20; // 541250
ref_results[1753] = 8.671325280515365E-24; // 541251
ref_results[1754] = 2.968138469012664E-17; // 471260
ref_results[1755] = 6.608928370179990E-14; // 481260
ref_results[1756] = 6.741145125169887E-13; // 491260
ref_results[1757] = 5.121211853097286E-13; // 491261
ref_results[1758] = 1.506014283440062E-05; // 501260
ref_results[1759] = 3.980459683915151E-08; // 511260
ref_results[1760] = 7.483120575625677E-11; // 511261
ref_results[1761] = 3.254799214806602E-07; // 521260
ref_results[1762] = 3.984273744462065E-12; // 531260
ref_results[1763] = 3.248311312326135E-12; // 541260
ref_results[1764] = 3.357783743339320E-18; // 471270
ref_results[1765] = 4.515436679711977E-14; // 481270
ref_results[1766] = 1.278188524020792E-12; // 491270
ref_results[1767] = 2.009139771961840E-12; // 491271
ref_results[1768] = 6.250208765851151E-08; // 501270
ref_results[1769] = 5.766733315601252E-10; // 501271
ref_results[1770] = 3.558296720191551E-06; // 511270
ref_results[1771] = 3.435658727253138E-07; // 521270
ref_results[1772] = 1.174527615556595E-06; // 521271
ref_results[1773] = 3.312602688611327E-05; // 531270
ref_results[1774] = 5.042046192546599E-14; // 541270
ref_results[1775] = 5.334563188918982E-19; // 541271
ref_results[1776] = 3.250418386249863E-37; // 551270
ref_results[1777] = 3.369533810911607E-19; // 471280
ref_results[1778] = 1.476557812363744E-14; // 481280
ref_results[1779] = 7.320020764032918E-13; // 491280
ref_results[1780] = 5.894617512694506E-13; // 491281
ref_results[1781] = 5.568676175660163E-08; // 501280
ref_results[1782] = 4.554152155737590E-11; // 501281
ref_results[1783] = 5.486171859074510E-07; // 511280
ref_results[1784] = 6.761084172480259E-10; // 511281
ref_results[1785] = 6.479285846914520E-05; // 521280
ref_results[1786] = 1.181612670657546E-10; // 531280
ref_results[1787] = 1.558418141688101E-07; // 541280
ref_results[1788] = 4.280482703394610E-20; // 471290
ref_results[1789] = 1.111571300892269E-16; // 481290
ref_results[1790] = 3.516258137565731E-13; // 491290
ref_results[1791] = 6.149907370684101E-13; // 491291
ref_results[1792] = 2.239582247566213E-09; // 501290
ref_results[1793] = 3.324662580191011E-09; // 501291
ref_results[1794] = 5.102954908512969E-07; // 511290
ref_results[1795] = 1.345053188424580E-07; // 521290
ref_results[1796] = 1.735169912246787E-08; // 521291
ref_results[1797] = 1.138339048762374E-04; // 531290
ref_results[1798] = 7.805730374798286E-11; // 541290
ref_results[1799] = 3.066345393047590E-12; // 541291
ref_results[1800] = 8.827430300451281E-24; // 551290
ref_results[1801] = 1.726474629156179E-33; // 561290
ref_results[1802] = 4.818747872424747E-18; // 471300
ref_results[1803] = 2.054162810216923E-13; // 481300
ref_results[1804] = 4.313722657673859E-13; // 491300
ref_results[1805] = 2.774671108773376E-13; // 491301
ref_results[1806] = 4.147208851231203E-09; // 501300
ref_results[1807] = 1.691449482224419E-09; // 501301
ref_results[1808] = 7.393608821357923E-08; // 511300
ref_results[1809] = 1.236358865722898E-08; // 511301
ref_results[1810] = 2.580873443792723E-04; // 521300
ref_results[1811] = 9.069368342654515E-09; // 531300
ref_results[1812] = 5.674770095436745E-11; // 531301
ref_results[1813] = 5.717608363880746E-07; // 541300
ref_results[1814] = 1.351248768282651E-14; // 481310
ref_results[1815] = 1.005040400465383E-13; // 491310
ref_results[1816] = 5.848189291672143E-14; // 491311
ref_results[1817] = 7.243331989434508E-10; // 501310
ref_results[1818] = 7.248131761180916E-10; // 501311
ref_results[1819] = 1.145613173906265E-07; // 511310
ref_results[1820] = 1.440294877954124E-07; // 521310
ref_results[1821] = 1.950089330804534E-06; // 521311
ref_results[1822] = 7.044913029105182E-05; // 531310
ref_results[1823] = 3.338460476892433E-04; // 541310
ref_results[1824] = 1.053646032642376E-06; // 541311
ref_results[1825] = 4.382966936388493E-14; // 551310
ref_results[1826] = 2.291970395679378E-19; // 561310
ref_results[1827] = 9.760877353123359E-18; // 481320
ref_results[1828] = 3.108100966889968E-14; // 491320
ref_results[1829] = 7.174224664823063E-10; // 501320
ref_results[1830] = 1.170553970795297E-08; // 511320
ref_results[1831] = 5.676987149441183E-09; // 511321
ref_results[1832] = 4.147158893863560E-05; // 521320
ref_results[1833] = 1.273751930867887E-06; // 531320
ref_results[1834] = 1.205371577679236E-08; // 531321
ref_results[1835] = 5.733359190546937E-04; // 541320
ref_results[1836] = 7.232281145938432E-11; // 551320
ref_results[1837] = 5.110965021047121E-12; // 561320
ref_results[1838] = 1.145992097882031E-15; // 491330
ref_results[1839] = 4.319703653024541E-12; // 501330
ref_results[1840] = 8.730786430083426E-09; // 511330
ref_results[1841] = 9.198084683896244E-08; // 521330
ref_results[1842] = 3.146777696040206E-07; // 521331
ref_results[1843] = 1.650857148067109E-05; // 531330
ref_results[1844] = 9.685637007437755E-11; // 531331
ref_results[1845] = 9.494602175219767E-05; // 541330
ref_results[1846] = 5.368648123618776E-07; // 541331
ref_results[1847] = 7.393574757619200E-04; // 551330
ref_results[1848] = 1.040602369275067E-13; // 561330
ref_results[1849] = 1.952453036312771E-25; // 571330
ref_results[1850] = 4.391112795289606E-17; // 491340
ref_results[1851] = 4.403380227943897E-13; // 501340
ref_results[1852] = 7.610823550057842E-12; // 511340
ref_results[1853] = 9.470696547534666E-11; // 511341
ref_results[1854] = 4.745008987711620E-07; // 521340
ref_results[1855] = 7.772090050824895E-07; // 531340
ref_results[1856] = 5.470283515620829E-09; // 531341
ref_results[1857] = 9.834096529188346E-04; // 541340
ref_results[1858] = 1.134886939232354E-12; // 541341
ref_results[1859] = 9.012755679933918E-06; // 551340
ref_results[1860] = 4.078577775468033E-09; // 551341
ref_results[1861] = 2.273819361792655E-07; // 561340
ref_results[1862] = 8.448189106677473E-19; // 491350
ref_results[1863] = 1.140596581468204E-14; // 501350
ref_results[1864] = 6.493480414896886E-12; // 511350
ref_results[1865] = 1.727057860598751E-09; // 521350
ref_results[1866] = 4.929585778068816E-06; // 531350
ref_results[1867] = 2.232661681136992E-06; // 541350
ref_results[1868] = 3.308698335974476E-08; // 541351
ref_results[1869] = 2.584601545749341E-04; // 551350
ref_results[1870] = 3.921107383489858E-10; // 551351
ref_results[1871] = 7.758879803300908E-10; // 561350
ref_results[1872] = 1.143876505065333E-11; // 561351
ref_results[1873] = 4.586040233236860E-16; // 571350
ref_results[1874] = 5.408538336681921E-25; // 581350
ref_results[1875] = 2.456775183111833E-16; // 501360
ref_results[1876] = 3.204272864925654E-13; // 511360
ref_results[1877] = 5.405770460796533E-10; // 521360
ref_results[1878] = 6.051904060563623E-09; // 531360
ref_results[1879] = 2.233169321613944E-09; // 531361
ref_results[1880] = 1.456891271712146E-03; // 541360
ref_results[1881] = 1.047927084954076E-06; // 551360
ref_results[1882] = 1.675682185069284E-11; // 551361
ref_results[1883] = 5.179149175714002E-06; // 561360
ref_results[1884] = 3.289966625627539E-14; // 561361
ref_results[1885] = 5.714260183827324E-17; // 501370
ref_results[1886] = 2.180815354371393E-13; // 511370
ref_results[1887] = 2.399886155611087E-11; // 521370
ref_results[1888] = 2.198666971315892E-09; // 531370
ref_results[1889] = 4.512845135734028E-08; // 541370
ref_results[1890] = 8.012243180791158E-04; // 551370
ref_results[1891] = 2.391495632201127E-06; // 561370
ref_results[1892] = 1.341957388682744E-10; // 561371
ref_results[1893] = 1.487610939826180E-10; // 571370
ref_results[1894] = 4.892345939956531E-17; // 581370
ref_results[1895] = 4.909084477145385E-16; // 511380
ref_results[1896] = 2.102898205394463E-12; // 521380
ref_results[1897] = 2.870403466588154E-10; // 531380
ref_results[1898] = 1.561282543835067E-07; // 541380
ref_results[1899] = 4.102626316783639E-07; // 551380
ref_results[1900] = 2.351262560313647E-09; // 551381
ref_results[1901] = 8.167931237492658E-04; // 561380
ref_results[1902] = 5.840027305089002E-09; // 571380
ref_results[1903] = 4.530528938697352E-13; // 581380
ref_results[1904] = 2.344731896818014E-17; // 511390
ref_results[1905] = 6.166215966470897E-14; // 521390
ref_results[1906] = 4.127463258899034E-11; // 531390
ref_results[1907] = 5.165963154825908E-09; // 541390
ref_results[1908] = 1.054998188419636E-07; // 551390
ref_results[1909] = 9.691343823074793E-07; // 561390
ref_results[1910] = 7.646299786236831E-04; // 571390
ref_results[1911] = 2.575536686669497E-10; // 581390
ref_results[1912] = 2.822363962806647E-15; // 581391
ref_results[1913] = 6.379018902354567E-18; // 591390
ref_results[1914] = 7.778899928134055E-14; // 521400
ref_results[1915] = 3.224348640621147E-12; // 531400
ref_results[1916] = 1.140145905787017E-09; // 541400
ref_results[1917] = 9.831463439638602E-09; // 551400
ref_results[1918] = 1.809162054003464E-04; // 561400
ref_results[1919] = 2.344990760366612E-05; // 571400
ref_results[1920] = 5.344625845380993E-04; // 581400
ref_results[1921] = 1.049187649990178E-14; // 591400
ref_results[1922] = 9.743498818360314E-20; // 601400
ref_results[1923] = 7.203287729256160E-16; // 521410
ref_results[1924] = 3.649350865538472E-13; // 531410
ref_results[1925] = 4.917003044790658E-11; // 541410
ref_results[1926] = 3.026682530436236E-09; // 551410
ref_results[1927] = 1.946857118259535E-07; // 561410
ref_results[1928] = 2.524004767039344E-06; // 571410
ref_results[1929] = 3.411562960640161E-04; // 581410
ref_results[1930] = 3.573848483728779E-04; // 591410
ref_results[1931] = 4.989110334287547E-16; // 601410
ref_results[1932] = 3.943110840416981E-37; // 611410
ref_results[1933] = 1.751263405654832E-17; // 521420
ref_results[1934] = 3.006120763660706E-14; // 531420
ref_results[1935] = 1.227320563341384E-11; // 541420
ref_results[1936] = 1.159577634454627E-10; // 551420
ref_results[1937] = 1.060337902573216E-07; // 561420
ref_results[1938] = 9.463816828569153E-07; // 571420
ref_results[1939] = 6.875585733017298E-04; // 581420
ref_results[1940] = 1.392476165944426E-08; // 591420
ref_results[1941] = 6.318893657538092E-11; // 591421
ref_results[1942] = 3.940379423589597E-07; // 601420
ref_results[1943] = 1.238262512086924E-15; // 531430
ref_results[1944] = 6.277437049888809E-13; // 541430
ref_results[1945] = 6.259437441113733E-11; // 551430
ref_results[1946] = 2.108738428875062E-09; // 561430
ref_results[1947] = 1.406404388537638E-07; // 571430
ref_results[1948] = 1.950526163598590E-05; // 581430
ref_results[1949] = 1.670620939996774E-04; // 591430
ref_results[1950] = 4.668994245067198E-04; // 601430
ref_results[1951] = 1.193641393486630E-21; // 611430
ref_results[1952] = 1.111983508700961E-30; // 621430
ref_results[1953] = 5.268944186216829E-32; // 621431
ref_results[1954] = 1.748544191635453E-17; // 531440
ref_results[1955] = 6.421194275806240E-14; // 541440
ref_results[1956] = 9.951799583735671E-12; // 551440
ref_results[1957] = 1.227183578845431E-09; // 561440
ref_results[1958] = 5.922414542228838E-09; // 571440
ref_results[1959] = 5.412281822605125E-04; // 581440
ref_results[1960] = 2.352413290330602E-08; // 591440
ref_results[1961] = 3.018633009750169E-10; // 591441
ref_results[1962] = 6.848037025284387E-05; // 601440
ref_results[1963] = 5.610112130620949E-17; // 611440
ref_results[1964] = 2.818888687756444E-21; // 621440
ref_results[1965] = 1.690255873414280E-15; // 541450
ref_results[1966] = 1.143411267097196E-12; // 551450
ref_results[1967] = 1.921017442802130E-10; // 561450
ref_results[1968] = 2.532442219523005E-09; // 571450
ref_results[1969] = 2.008863480089358E-08; // 581450
ref_results[1970] = 2.393165539745940E-06; // 591450
ref_results[1971] = 4.383829911295371E-04; // 601450
ref_results[1972] = 8.566639475804798E-13; // 611450
ref_results[1973] = 9.338113442096795E-16; // 621450
ref_results[1974] = 9.819658164485350E-17; // 541460
ref_results[1975] = 6.943016274665600E-14; // 551460
ref_results[1976] = 4.194592497885167E-11; // 561460
ref_results[1977] = 2.521972573971551E-10; // 571460
ref_results[1978] = 2.132828915224282E-10; // 571461
ref_results[1979] = 7.130242833525367E-08; // 581460
ref_results[1980] = 1.279069468469700E-07; // 591460
ref_results[1981] = 3.557247803829050E-04; // 601460
ref_results[1982] = 1.066122454904296E-10; // 611460
ref_results[1983] = 8.266592396150495E-12; // 621460
ref_results[1984] = 4.579574118937322E-18; // 541470
ref_results[1985] = 9.855630600381592E-15; // 551470
ref_results[1986] = 4.184253476354087E-12; // 561470
ref_results[1987] = 1.033190847489916E-10; // 571470
ref_results[1988] = 3.461575705155661E-09; // 581470
ref_results[1989] = 5.542769016374931E-08; // 591470
ref_results[1990] = 5.783373293737199E-05; // 601470
ref_results[1991] = 1.931546777694320E-04; // 611470
ref_results[1992] = 5.101093596066935E-06; // 621470
ref_results[1993] = 3.433266409317377E-24; // 631470
ref_results[1994] = 1.389527302772247E-36; // 641470
ref_results[1995] = 2.184866972106410E-16; // 551480
ref_results[1996] = 3.138159729779462E-13; // 561480
ref_results[1997] = 1.034214816232863E-11; // 571480
ref_results[1998] = 2.363215911330880E-09; // 581480
ref_results[1999] = 6.601241911923968E-09; // 591480
ref_results[2000] = 7.045992179436446E-10; // 591481
ref_results[2001] = 2.144813466341872E-04; // 601480
ref_results[2002] = 1.133210785981839E-06; // 611480
ref_results[2003] = 1.544987500644928E-06; // 611481
ref_results[2004] = 6.002117641107918E-06; // 621480
ref_results[2005] = 3.277273300551268E-18; // 551490
ref_results[2006] = 1.525885015328953E-14; // 561490
ref_results[2007] = 2.359472046470175E-12; // 571490
ref_results[2008] = 1.206456244001819E-10; // 581490
ref_results[2009] = 5.000373161795021E-09; // 591490
ref_results[2010] = 2.355940285387604E-07; // 601490
ref_results[2011] = 7.313149275820863E-06; // 611490
ref_results[2012] = 1.588768078900013E-05; // 621490
ref_results[2013] = 1.812691982257848E-17; // 631490
ref_results[2014] = 3.663326309933852E-25; // 641490
ref_results[2015] = 2.058236907800243E-19; // 551500
ref_results[2016] = 1.138359943349466E-15; // 561500
ref_results[2017] = 1.893717042704814E-13; // 571500
ref_results[2018] = 4.592186663984882E-11; // 581500
ref_results[2019] = 1.460377211574942E-10; // 591500
ref_results[2020] = 1.010861854852765E-04; // 601500
ref_results[2021] = 4.061735694268323E-09; // 611500
ref_results[2022] = 1.242390083561652E-04; // 621500
ref_results[2023] = 4.658797686508812E-20; // 551510
ref_results[2024] = 1.301105382911881E-16; // 561510
ref_results[2025] = 3.768494505186997E-14; // 571510
ref_results[2026] = 2.953562739686065E-12; // 581510
ref_results[2027] = 2.462361952813093E-10; // 591510
ref_results[2028] = 1.436300083106173E-08; // 601510
ref_results[2029] = 1.959342288781819E-06; // 611510
ref_results[2030] = 4.199010943982613E-05; // 621510
ref_results[2031] = 2.425830771809260E-08; // 631510
ref_results[2032] = 1.444241104958629E-15; // 641510
ref_results[2033] = 3.677998869440273E-35; // 651510
ref_results[2034] = 8.030522888089608E-19; // 561520
ref_results[2035] = 1.928002847145885E-15; // 571520
ref_results[2036] = 8.791280702440794E-13; // 581520
ref_results[2037] = 1.864658141045244E-11; // 591520
ref_results[2038] = 9.307078434131918E-09; // 601520
ref_results[2039] = 3.418492543308927E-09; // 611520
ref_results[2040] = 1.935207642682229E-10; // 611521
ref_results[2041] = 7.322600081354359E-05; // 621520
ref_results[2042] = 6.969099119153496E-09; // 631520
ref_results[2043] = 7.603440939641967E-11; // 631521
ref_results[2044] = 3.180773484700838E-09; // 641520
ref_results[2045] = 2.947105744858935E-20; // 561530
ref_results[2046] = 1.288073234054475E-16; // 571530
ref_results[2047] = 7.505219580656763E-14; // 581530
ref_results[2048] = 7.042543552920866E-12; // 591530
ref_results[2049] = 2.375103874400086E-10; // 601530
ref_results[2050] = 2.778829450991468E-09; // 611530
ref_results[2051] = 1.902509630196255E-06; // 621530
ref_results[2052] = 3.401993974390095E-05; // 631530
ref_results[2053] = 5.538202292830335E-11; // 641530
ref_results[2054] = 1.362064015982536E-35; // 641531
ref_results[2055] = 2.408876766582513E-23; // 651530
ref_results[2056] = 1.536063028101030E-18; // 571540
ref_results[2057] = 5.745649570262130E-15; // 581540
ref_results[2058] = 7.187115383709204E-13; // 591540
ref_results[2059] = 1.000935343678004E-10; // 601540
ref_results[2060] = 7.590950679077789E-10; // 611540
ref_results[2061] = 8.885715025065798E-11; // 611541
ref_results[2062] = 2.019029024447468E-05; // 621540
ref_results[2063] = 1.622996249142761E-06; // 631540
ref_results[2064] = 3.980813243950809E-11; // 631541
ref_results[2065] = 9.891994093671714E-09; // 641540
ref_results[2066] = 2.646753873453332E-20; // 571550
ref_results[2067] = 2.661785664683221E-16; // 581550
ref_results[2068] = 4.649538220468811E-14; // 591550
ref_results[2069] = 1.129225706598984E-11; // 601550
ref_results[2070] = 1.269884445248864E-10; // 611550
ref_results[2071] = 4.629875789468202E-09; // 621550
ref_results[2072] = 6.265425462953522E-06; // 631550
ref_results[2073] = 3.990004302142507E-08; // 641550
ref_results[2074] = 8.957783686695480E-20; // 641551
ref_results[2075] = 3.369084991922666E-17; // 651550
ref_results[2076] = 2.549098079684205E-25; // 661550
ref_results[2077] = 4.939935173103282E-18; // 581560
ref_results[2078] = 4.637945475957333E-15; // 591560
ref_results[2079] = 2.159681019184028E-12; // 601560
ref_results[2080] = 4.263144928852138E-11; // 611560
ref_results[2081] = 8.113423363764147E-08; // 621560
ref_results[2082] = 4.582440979636470E-06; // 631560
ref_results[2083] = 8.574850640181935E-06; // 641560
ref_results[2084] = 2.050239720481828E-15; // 651560
ref_results[2085] = 4.375969113963193E-17; // 651561
ref_results[2086] = 2.454292856280481E-22; // 661560
ref_results[2087] = 6.257709097780914E-20; // 581570
ref_results[2088] = 1.808371601687372E-16; // 591570
ref_results[2089] = 1.151448019993353E-13; // 601570
ref_results[2090] = 6.410888624577076E-12; // 611570
ref_results[2091] = 6.555371253779001E-10; // 621570
ref_results[2092] = 8.202682771173754E-08; // 631570
ref_results[2093] = 4.446887018995461E-07; // 641570
ref_results[2094] = 3.827426048953708E-13; // 651570
ref_results[2095] = 2.299476662414238E-22; // 661570
ref_results[2096] = 6.826919825947018E-18; // 591580
ref_results[2097] = 1.022411155066736E-14; // 601580
ref_results[2098] = 6.981588412389234E-13; // 611580
ref_results[2099] = 2.217874413171051E-10; // 621580
ref_results[2100] = 2.186116414100946E-09; // 631580
ref_results[2101] = 6.813648781532429E-06; // 641580
ref_results[2102] = 6.498886419294926E-12; // 651580
ref_results[2103] = 4.293945874161796E-18; // 651581
ref_results[2104] = 6.919111878088823E-15; // 661580
ref_results[2105] = 1.447207223229246E-19; // 591590
ref_results[2106] = 4.240359337424998E-16; // 601590
ref_results[2107] = 4.249828793876786E-14; // 611590
ref_results[2108] = 2.945902223907139E-12; // 621590
ref_results[2109] = 4.131035072469043E-10; // 631590
ref_results[2110] = 2.597734951482998E-08; // 641590
ref_results[2111] = 1.193647042054463E-06; // 651590
ref_results[2112] = 4.645333886496091E-15; // 661590
ref_results[2113] = 5.392210848465804E-25; // 671590
ref_results[2114] = 2.717715294793680E-28; // 671591
ref_results[2115] = 1.147201656954835E-17; // 601600
ref_results[2116] = 6.850116016730028E-15; // 611600
ref_results[2117] = 7.706388604674527E-13; // 621600
ref_results[2118] = 6.156807137219403E-12; // 631600
ref_results[2119] = 5.609076963875493E-07; // 641600
ref_results[2120] = 1.225253093532857E-08; // 651600
ref_results[2121] = 3.065964189602614E-09; // 661600
ref_results[2122] = 3.063131234766186E-19; // 601610
ref_results[2123] = 2.336909557518313E-16; // 611610
ref_results[2124] = 7.609082550905574E-14; // 621610
ref_results[2125] = 1.699717503400915E-12; // 631610
ref_results[2126] = 1.919058184864108E-11; // 641610
ref_results[2127] = 4.755345960189382E-08; // 651610
ref_results[2128] = 2.124597514544139E-07; // 661610
ref_results[2129] = 4.892150513119971E-19; // 671610
ref_results[2130] = 2.244285297097234E-24; // 671611
ref_results[2131] = 1.138633594923936E-25; // 681610
ref_results[2132] = 7.717463308606620E-18; // 611620
ref_results[2133] = 4.250029806546952E-15; // 621620
ref_results[2134] = 1.845203474976125E-13; // 631620
ref_results[2135] = 1.929078561494373E-11; // 641620
ref_results[2136] = 1.831485952921424E-11; // 651620
ref_results[2137] = 1.285047531554070E-07; // 661620
ref_results[2138] = 8.642200620108203E-19; // 671620
ref_results[2139] = 3.692047654477963E-18; // 671621
ref_results[2140] = 1.590427040527325E-22; // 681620
ref_results[2141] = 2.158120148558642E-19; // 611630
ref_results[2142] = 1.838391741122608E-16; // 621630
ref_results[2143] = 2.374762963370339E-14; // 631630
ref_results[2144] = 9.870597375261118E-13; // 641630
ref_results[2145] = 1.905615057129997E-11; // 651630
ref_results[2146] = 5.810365097739044E-08; // 661630
ref_results[2147] = 5.880780060638285E-14; // 671630
ref_results[2148] = 2.785336627852620E-21; // 671631
ref_results[2149] = 2.113870362615370E-22; // 681630
ref_results[2150] = 8.164150323171742E-18; // 621640
ref_results[2151] = 1.068351712844228E-15; // 631640
ref_results[2152] = 2.044704861364933E-13; // 641640
ref_results[2153] = 1.067738417979766E-12; // 651640
ref_results[2154] = 1.913146607333652E-08; // 661640
ref_results[2155] = 2.382643324639088E-16; // 671640
ref_results[2156] = 2.145535033831743E-16; // 671641
ref_results[2157] = 1.658121065446965E-13; // 681640
ref_results[2158] = 2.777158632717239E-19; // 621650
ref_results[2159] = 8.021303106884298E-17; // 631650
ref_results[2160] = 1.237242173456072E-14; // 641650
ref_results[2161] = 2.973565202218347E-13; // 651650
ref_results[2162] = 3.090849816515675E-11; // 661650
ref_results[2163] = 1.847296451087772E-13; // 661651
ref_results[2164] = 1.025294962425936E-08; // 671650
ref_results[2165] = 1.050010035175434E-16; // 681650
ref_results[2166] = 3.951276958582841E-24; // 691650
ref_results[2167] = 4.427223087290886E-18; // 631660
ref_results[2168] = 2.339513654641046E-15; // 641660
ref_results[2169] = 2.092911150989358E-14; // 651660
ref_results[2170] = 3.615655410726988E-10; // 661660
ref_results[2171] = 1.280950238687539E-10; // 671660
ref_results[2172] = 1.130688508594374E-11; // 671661
ref_results[2173] = 3.840108678141598E-09; // 681660
ref_results[2174] = 1.007023492851045E-23; // 691660
ref_results[2175] = 2.055558706838267E-32; // 701660
ref_results[2176] = 3.145007974882385E-19; // 631670
ref_results[2177] = 1.211468351862805E-16; // 641670
ref_results[2178] = 3.914815361277273E-15; // 651670
ref_results[2179] = 1.227927881619474E-13; // 661670
ref_results[2180] = 3.809976504198399E-12; // 671670
ref_results[2181] = 9.641523893834222E-10; // 681670
ref_results[2182] = 1.115855025547444E-16; // 681671
ref_results[2183] = 8.663234837240192E-19; // 691670
ref_results[2184] = 8.139526267166483E-28; // 701670
ref_results[2185] = 2.468993388924006E-18; // 641680
ref_results[2186] = 3.637583004445054E-16; // 651680
ref_results[2187] = 5.445517934859769E-14; // 661680
ref_results[2188] = 1.978597385983085E-14; // 671680
ref_results[2189] = 6.091791987795962E-10; // 681680
ref_results[2190] = 2.491814534761678E-16; // 691680
ref_results[2191] = 3.722859753480599E-21; // 701680
ref_results[2192] = 1.577588890908389E-18; // 641690
ref_results[2193] = 2.717332703410789E-17; // 651690
ref_results[2194] = 1.501902522993638E-15; // 661690
ref_results[2195] = 1.277544875206449E-14; // 671690
ref_results[2196] = 3.363626751035512E-11; // 681690
ref_results[2197] = 1.354026564216856E-10; // 691690
ref_results[2198] = 4.138045493022221E-19; // 701690
ref_results[2199] = 2.202376299279885E-24; // 701691
ref_results[2200] = 2.334383255140302E-35; // 711690
ref_results[2201] = 1.764595677382808E-38; // 711691
ref_results[2202] = 1.028493476446897E-17; // 651700
ref_results[2203] = 3.528140690073613E-16; // 661700
ref_results[2204] = 2.199273409817758E-15; // 671700
ref_results[2205] = 6.535001405389657E-17; // 671701
ref_results[2206] = 6.617488857880876E-11; // 681700
ref_results[2207] = 6.220350856126909E-12; // 691700
ref_results[2208] = 9.260630486324256E-13; // 701700
ref_results[2209] = 4.309768728086376E-19; // 651710
ref_results[2210] = 2.753119974602958E-17; // 661710
ref_results[2211] = 3.815204532430191E-16; // 671710
ref_results[2212] = 2.091579531811036E-13; // 681710
ref_results[2213] = 3.254694758839042E-11; // 691710
ref_results[2214] = 1.437146430162935E-12; // 701710
ref_results[2215] = 3.894771383116190E-24; // 711710
ref_results[2216] = 3.074680098435067E-28; // 711711
ref_results[2218] = 1.282819046559295E-17; // 661720
ref_results[2219] = 1.704495043968934E-16; // 671720
ref_results[2220] = 1.293919094824117E-12; // 681720
ref_results[2221] = 1.720153880932751E-12; // 691720
ref_results[2222] = 3.593656582047940E-11; // 701720
ref_results[2223] = 6.549651351702553E-23; // 711720
ref_results[2224] = 1.629385637364643E-26; // 711721
Vec_Dbl ref( &ref_results[0], &ref_results[0] + itot );
return ref;
}
//--------//
// tstCRAM4//
//--------//
/******************************************************************************
* Full system unit test for kernel_cram() in decay only calculations. *
* *
* Author: Aarno Isotalo *
* *
* For these decay only problems, the reference solutions produced with TTA *
* are exact for all practical purposes, only limited by the double precision *
* output. *
* *
* The first case is normal decay of old fuel. This is the kind of case where *
* CRAM is at it's weakest in the sense that it can produce very large *
* relative errors. However, absolute errors are still quaranteed to be small,*
* so large relative errors are only encountered with nuclides with too low *
* atomic density to affect anything. *
* *
* The second case has no initial composition but a random source term. *
* Because all nuclides are populated, no concentration shrinks and CRAM is *
* extremely accurate. *
* *
*****************************************************************************/
//#include "Origen/Manager/Wrapper/tests/pwr.rev01.old.decay.100d.expm.h"
TEST_F( tstCRAM, OldFuelDecayNoSource )
{
// fold library
flux = 0.0;
trx->fold_flux( flux, DLdiag, DLa );
Vec_Dbl diag( DLdiag.begin(), DLdiag.end() );
Vec_Dbl a( DLa.begin(), DLa.end() );
// Set initial composition and step length
Vec_Dbl n( itot );
int source_order = -1;
double** source_term = nullptr;
double delta_t = 100 * 60 * 60 * 24;
// Solve
int zero_flux_step = 1, is_adjoint = 0, cram_order = 16, internal_steps = 1;
int remove_negatives = 1;
double cutoff = 0.0;
kernel_cram( &n[0],
&n0[0],
source_term,
source_order,
delta_t,
itot,
non,
&non0[0],
&kd[0],
&diag[0],
&a[0],
&loc[0],
zero_flux_step,
is_adjoint,
cram_order,
internal_steps,
remove_negatives,
cutoff,
&ZAI[0] );
// get reference results
// human-readable illustration of the overall performance
PrintErrorTable( itot, &n[0], &n_ref[0] );
// check that there are not too many bad errors
CheckErrors( itot, &n[0], &n_ref[0], 1e-20, 1e-8, &ZAI[0] );
// Check that all values are non-negative (remove_negatives is on)
for( i = 0; i < itot; i++ ) EXPECT_GE( n[0], 0 );
}
TEST_F( tstCRAM, DecayFromRandomSource )
{
int i;
// fold library
flux = 0.0;
trx->fold_flux( flux, DLdiag, DLa );
Vec_Dbl diag( DLdiag.begin(), DLdiag.end() );
Vec_Dbl a( DLa.begin(), DLa.end() );
// Set initial composition and step length
Vec_Dbl n0( itot, 0.0 );
Vec_Dbl n( itot );
int source_order = 0;
double** source_term = (double**)malloc( itot * sizeof( double* ) );
for( i = 0; i < itot; i++ )
source_term[i] = (double*)calloc( source_order + 1, sizeof( double ) );
my_drand( 49024601LL );
for( i = 0; i < itot; i++ ) source_term[i][0] = my_drand();
double delta_t = 100 * 60 * 60 * 24;
// Solve
int zero_flux_step = 1, is_adjoint = 0, cram_order = 16, internal_steps = 1;
int remove_negatives = 0;
double cutoff = 0.0;
kernel_cram( &n[0],
&n0[0],
source_term,
source_order,
delta_t,
itot,
non,
&non0[0],
&kd[0],
&diag[0],
&a[0],
&loc[0],
zero_flux_step,
is_adjoint,
cram_order,
internal_steps,
remove_negatives,
cutoff,
&ZAI[0] );
// get reference results
// human-readable illustration of the overall performance
PrintErrorTable( itot, &n[0], &n_ref[0] );
// check the errors
CheckErrors( itot, &n[0], &n_ref[0], 1e-40, 1e-10, &ZAI[0] );
// free
for( i = 0; i < itot; i++ ) free( source_term[i] );
free( source_term );
}
// Initial composition was calculated by depleting 0.05 U235 0.95 U238 with
// flux 3.5e14 for 4*200days usingh the CRAM solver, order 16
{
int itot = 2226; // note: the last nuclide is source dummy, we ignore it
double ref_n0[2226] = {0};
ref_n0[903] = 1.253355167613265E-26; // 20030
ref_n0[904] = 1.349918988681780E-05; // 20040
ref_n0[909] = 8.802472019687150E-29; // 802060
ref_n0[910] = 4.168347779252477E-32; // 812030
ref_n0[911] = 2.458115289833594E-26; // 812050
ref_n0[912] = 1.717387716206603E-27; // 812060
ref_n0[913] = 5.140506932021013E-22; // 812070
ref_n0[914] = 1.123846037502163E-18; // 812080
ref_n0[915] = 1.462227370298455E-22; // 812090
ref_n0[916] = 2.177028230548548E-29; // 812100
ref_n0[917] = 9.487776981744321E-34; // 822030
ref_n0[918] = 1.376723866680915E-27; // 822040
ref_n0[919] = 6.197715740719792E-24; // 822050
ref_n0[920] = 1.156469159974239E-18; // 822060
ref_n0[921] = 2.786396068394242E-17; // 822070
ref_n0[922] = 4.389230521106002E-26; // 822071
ref_n0[923] = 1.743420726691901E-13; // 822080
ref_n0[924] = 6.207304781565874E-19; // 822090
ref_n0[925] = 1.038533083784876E-16; // 822100
ref_n0[926] = 3.901255887957276E-21; // 822110
ref_n0[927] = 6.540444145814382E-16; // 822120
ref_n0[928] = 2.105359713551529E-24; // 822140
ref_n0[929] = 4.431521886362290E-30; // 832060
ref_n0[930] = 1.728065908189121E-24; // 832070
ref_n0[931] = 3.192057229578849E-21; // 832080
ref_n0[932] = 5.192542806109695E-16; // 832090
ref_n0[933] = 6.893370456247654E-21; // 832101
ref_n0[934] = 6.361466012781914E-20; // 832100
ref_n0[935] = 2.312640596914059E-22; // 832110
ref_n0[936] = 6.201853126968227E-17; // 832120
ref_n0[938] = 1.449840188184314E-19; // 832130
ref_n0[939] = 1.563505056535990E-24; // 832140
ref_n0[940] = 1.183035498717061E-34; // 842070
ref_n0[941] = 6.960340856482415E-27; // 842080
ref_n0[942] = 1.616919150253071E-23; // 842090
ref_n0[943] = 1.056401238276904E-18; // 842100
ref_n0[944] = 3.890227914019932E-31; // 842111
ref_n0[945] = 2.565477603769723E-27; // 842110
ref_n0[946] = 3.269611474189533E-27; // 842120
ref_n0[947] = 2.179656058004311E-28; // 842130
ref_n0[948] = 8.518563341444295E-28; // 842140
ref_n0[949] = 3.205182045799908E-27; // 842150
ref_n0[950] = 2.483159204807767E-21; // 842160
ref_n0[951] = 2.436033747929459E-25; // 842180
ref_n0[952] = 4.277522919654498E-33; // 852160
ref_n0[953] = 1.712415007101989E-24; // 852170
ref_n0[954] = 3.928916574929388E-31; // 852180
ref_n0[955] = 2.253868201892007E-36; // 862160
ref_n0[956] = 2.004002927885836E-30; // 862170
ref_n0[957] = 1.814208459549940E-25; // 862180
ref_n0[958] = 7.126625595314088E-24; // 862190
ref_n0[959] = 9.521631376397158E-19; // 862200
ref_n0[960] = 4.326430627678105E-22; // 862220
ref_n0[961] = 3.920525805876040E-28; // 872200
ref_n0[962] = 1.558736215031073E-20; // 872210
ref_n0[963] = 1.051144932743830E-25; // 872220
ref_n0[964] = 1.700936797570352E-23; // 872230
ref_n0[965] = 9.015472200301385E-34; // 882200
ref_n0[966] = 1.969712034748790E-22; // 882220
ref_n0[967] = 1.777244461234148E-18; // 882230
ref_n0[968] = 5.415413178065118E-15; // 882240
ref_n0[969] = 7.567740185922836E-17; // 882250
ref_n0[970] = 6.747884204448627E-17; // 882260
ref_n0[971] = 8.553992996922417E-22; // 882270
ref_n0[972] = 2.674830310427740E-19; // 882280
ref_n0[973] = 1.573636206872107E-24; // 892240
ref_n0[974] = 4.580668769766464E-17; // 892250
ref_n0[975] = 2.173999958723511E-19; // 892260
ref_n0[976] = 6.415330605898576E-16; // 892270
ref_n0[977] = 5.503902013039760E-19; // 892280
ref_n0[978] = 9.507223119117854E-21; // 902260
ref_n0[979] = 3.055115508814270E-18; // 902270
ref_n0[980] = 1.062089625931674E-12; // 902280
ref_n0[981] = 1.666555560945756E-13; // 902290
ref_n0[982] = 8.054724247002917E-12; // 902300
ref_n0[983] = 8.413037544697793E-14; // 902310
ref_n0[984] = 4.745362644450455E-09; // 902320
ref_n0[985] = 9.226139837715309E-15; // 902330
ref_n0[986] = 1.367824146406903E-11; // 902340
ref_n0[987] = 5.534818154002066E-28; // 912280
ref_n0[988] = 1.971240369797008E-20; // 912290
ref_n0[989] = 4.234006531719851E-17; // 912300
ref_n0[990] = 3.600985200441327E-11; // 912310
ref_n0[991] = 1.054128721030969E-13; // 912320
ref_n0[992] = 3.370786923812226E-11; // 912330
ref_n0[993] = 1.493790283379758E-17; // 912341
ref_n0[994] = 1.636762713582392E-13; // 912340
ref_n0[995] = 5.674769244198781E-15; // 912350
ref_n0[996] = 6.231702879432423E-18; // 922300
ref_n0[997] = 1.164928554691858E-16; // 922310
ref_n0[998] = 2.562804170774344E-10; // 922320
ref_n0[999] = 1.224565721970184E-09; // 922330
ref_n0[1000] = 2.892061637184942E-06; // 922340
ref_n0[1001] = 1.793154554232889E-02; // 922350
ref_n0[1002] = 5.498596025687265E-03; // 922360
ref_n0[1003] = 1.448768993622212E-05; // 922370
ref_n0[1004] = 9.279921570206128E-01; // 922380
ref_n0[1005] = 5.725098533117835E-07; // 922390
ref_n0[1006] = 1.738522841040301E-19; // 922400
ref_n0[1007] = 5.254463668857273E-23; // 922410
ref_n0[1008] = 2.954099303784830E-19; // 932340
ref_n0[1009] = 3.175772373423812E-12; // 932350
ref_n0[1010] = 1.909796949310350E-11; // 932361
ref_n0[1011] = 2.557681357106000E-10; // 932360
ref_n0[1012] = 5.786115864460712E-04; // 932370
ref_n0[1013] = 1.632331113408042E-06; // 932380
ref_n0[1014] = 8.269382758278383E-05; // 932390
ref_n0[1015] = 1.814439232268444E-10; // 932401
ref_n0[1016] = 9.135768659239740E-10; // 932400
ref_n0[1017] = 2.395401740198881E-16; // 932410
ref_n0[1018] = 1.610479385579902E-09; // 942360
ref_n0[1019] = 5.349023769714466E-18; // 942371
ref_n0[1020] = 2.511998240567533E-10; // 942370
ref_n0[1021] = 1.563467111076066E-04; // 942380
ref_n0[1022] = 5.304222254566139E-03; // 942390
ref_n0[1023] = 1.233915609739040E-03; // 942400
ref_n0[1024] = 1.695443780677313E-03; // 942410
ref_n0[1025] = 4.946566481376710E-04; // 942420
ref_n0[1026] = 1.503451474471324E-07; // 942430
ref_n0[1027] = 8.697812429558587E-09; // 942440
ref_n0[1028] = 4.821517685415320E-13; // 942450
ref_n0[1029] = 2.384903491691802E-24; // 942460
ref_n0[1030] = 9.385279022219851E-27; // 942470
ref_n0[1031] = 1.258567051856717E-15; // 952390
ref_n0[1032] = 1.393411999252112E-12; // 952400
ref_n0[1033] = 4.364746620855789E-05; // 952410
ref_n0[1034] = 6.412573570458753E-07; // 952421
ref_n0[1035] = 1.156273171859146E-07; // 952420
ref_n0[1036] = 9.380631889738630E-05; // 952430
ref_n0[1037] = 3.493268594478705E-09; // 952441
ref_n0[1038] = 5.423044608042531E-09; // 952440
ref_n0[1039] = 9.407181758729999E-14; // 952450
ref_n0[1040] = 8.439145220695969E-21; // 952460
ref_n0[1041] = 7.042578890192868E-23; // 952470
ref_n0[1042] = 1.459441070952140E-15; // 962400
ref_n0[1043] = 7.774139756631647E-13; // 962410
ref_n0[1044] = 1.342687970566616E-05; // 962420
ref_n0[1045] = 2.354323142074922E-07; // 962430
ref_n0[1046] = 2.380223933513556E-05; // 962440
ref_n0[1047] = 1.297757487691270E-06; // 962450
ref_n0[1048] = 7.492581276960241E-08; // 962460
ref_n0[1049] = 6.205077660741902E-10; // 962470
ref_n0[1050] = 2.796073795479878E-11; // 962480
ref_n0[1051] = 3.607002330852085E-16; // 962490
ref_n0[1052] = 4.466697124060251E-18; // 962500
ref_n0[1053] = 1.055342861052316E-22; // 962510
ref_n0[1054] = 5.636068098809141E-30; // 972450
ref_n0[1055] = 1.968678441914159E-27; // 972460
ref_n0[1056] = 6.410389889567523E-20; // 972470
ref_n0[1057] = 2.397782672837606E-18; // 972480
ref_n0[1058] = 2.173091672285896E-20; // 972481
ref_n0[1059] = 2.527654026051573E-13; // 972490
ref_n0[1060] = 4.176589394492784E-16; // 972500
ref_n0[1061] = 1.237236707572829E-20; // 972510
ref_n0[1062] = 1.395043808854461E-28; // 982460
ref_n0[1063] = 1.102255816558371E-18; // 982480
ref_n0[1064] = 2.987859091102037E-14; // 982490
ref_n0[1065] = 8.928911509046946E-14; // 982500
ref_n0[1066] = 3.464221256877792E-14; // 982510
ref_n0[1067] = 1.236122397408321E-14; // 982520
ref_n0[1068] = 1.526497047544123E-17; // 982530
ref_n0[1069] = 2.801994441232347E-20; // 982540
ref_n0[1070] = 2.055042027426457E-26; // 982550
ref_n0[1071] = 6.180017240205555E-27; // 992510
ref_n0[1072] = 1.298656841437384E-23; // 992520
ref_n0[1073] = 9.349657907510419E-18; // 992530
ref_n0[1074] = 1.142694601997293E-19; // 992541
ref_n0[1075] = 1.093390543359061E-19; // 992540
ref_n0[1076] = 1.217970701074622E-20; // 992550
ref_n0[1077] = 4.350266694426029E-06; // 10030
ref_n0[1078] = 5.996043840221785E-08; // 20030
ref_n0[1079] = 7.577986144315811E-05; // 20040
ref_n0[1080] = 2.443962306865135E-20; // 260650
ref_n0[1081] = 2.255965431405840E-20; // 270650
ref_n0[1082] = 1.705635681524437E-16; // 280650
ref_n0[1083] = 9.153637359236482E-13; // 290650
ref_n0[1084] = 1.223270458554455E-23; // 240660
ref_n0[1085] = 1.105865376291148E-20; // 250660
ref_n0[1086] = 1.107087129744372E-18; // 260660
ref_n0[1087] = 1.258755478431355E-18; // 270660
ref_n0[1088] = 1.172946305741823E-12; // 280660
ref_n0[1089] = 1.835951899935780E-15; // 290660
ref_n0[1090] = 2.844089047595642E-10; // 300660
ref_n0[1091] = 3.688672364715685E-25; // 310660
ref_n0[1093] = 1.733063234171981E-23; // 240670
ref_n0[1094] = 6.663486384913146E-21; // 250670
ref_n0[1095] = 2.123777294495090E-18; // 260670
ref_n0[1096] = 6.054680339409506E-18; // 270670
ref_n0[1097] = 3.675508628690258E-16; // 280670
ref_n0[1098] = 3.920984918055786E-12; // 290670
ref_n0[1099] = 8.509566038335056E-10; // 300670
ref_n0[1100] = 3.960923273185426E-22; // 310670
ref_n0[1101] = 5.877058843489504E-37; // 320670
ref_n0[1102] = 8.639588324432913E-22; // 250680
ref_n0[1103] = 5.245093935751900E-19; // 260680
ref_n0[1104] = 3.526403147461516E-18; // 270680
ref_n0[1105] = 9.046496967725260E-16; // 280680
ref_n0[1106] = 1.000291280936295E-15; // 290680
ref_n0[1107] = 1.866567191908873E-16; // 290681
ref_n0[1108] = 1.569092320381414E-09; // 300680
ref_n0[1109] = 6.621293799790619E-19; // 310680
ref_n0[1110] = 6.382136021173298E-25; // 320680
ref_n0[1111] = 5.896629489064012E-23; // 250690
ref_n0[1112] = 1.109550524167751E-19; // 260690
ref_n0[1113] = 3.686824856118753E-18; // 270690
ref_n0[1114] = 5.876399706744090E-16; // 280690
ref_n0[1115] = 1.024644083329671E-14; // 290690
ref_n0[1116] = 2.041982273641065E-13; // 300690
ref_n0[1117] = 1.276791548751399E-14; // 300691
ref_n0[1118] = 2.800363921419894E-09; // 310690
ref_n0[1119] = 5.197731913832329E-20; // 320690
ref_n0[1121] = 2.707839264080897E-20; // 260700
ref_n0[1122] = 1.402592229005525E-18; // 270700
ref_n0[1123] = 5.146187515093490E-16; // 280700
ref_n0[1124] = 3.389503658582574E-15; // 290700
ref_n0[1125] = 3.269133000052987E-15; // 290701
ref_n0[1126] = 5.872547611283577E-09; // 300700
ref_n0[1127] = 1.177247877866184E-15; // 310700
ref_n0[1128] = 2.201480940444789E-11; // 320700
ref_n0[1129] = 5.890689982773388E-21; // 260710
ref_n0[1130] = 4.826287686800661E-19; // 270710
ref_n0[1131] = 2.429702020584083E-16; // 280710
ref_n0[1132] = 4.366765509884884E-15; // 290710
ref_n0[1133] = 3.375042614290173E-14; // 300710
ref_n0[1134] = 3.650107162862613E-13; // 300711
ref_n0[1135] = 1.081262013112726E-08; // 310710
ref_n0[1136] = 4.271834494893892E-15; // 320710
ref_n0[1137] = 5.870205647689566E-24; // 320711
ref_n0[1138] = 3.996235336558645E-24; // 330710
ref_n0[1139] = 6.635563396546371E-22; // 260720
ref_n0[1140] = 1.374211045550019E-19; // 270720
ref_n0[1141] = 1.478537978713463E-16; // 280720
ref_n0[1142] = 2.409945082149677E-15; // 290720
ref_n0[1143] = 9.399608095460877E-11; // 300720
ref_n0[1144] = 2.922080782046946E-11; // 310720
ref_n0[1145] = 2.605172259088909E-08; // 320720
ref_n0[1146] = 4.006436394722962E-19; // 330720
ref_n0[1147] = 2.971640608940840E-30; // 340720
ref_n0[1148] = 3.553538874543057E-20; // 270730
ref_n0[1149] = 6.466895700974776E-17; // 280730
ref_n0[1150] = 2.572928611208817E-15; // 290730
ref_n0[1151] = 3.065506644471033E-14; // 300730
ref_n0[1152] = 2.399854380961554E-11; // 310730
ref_n0[1153] = 6.596341919007516E-08; // 320730
ref_n0[1154] = 4.830706814246710E-17; // 320731
ref_n0[1155] = 2.480541226331316E-15; // 330730
ref_n0[1156] = 6.565314102090967E-23; // 340730
ref_n0[1157] = 3.756940047231651E-24; // 340731
ref_n0[1158] = 4.842964712579445E-21; // 270740
ref_n0[1159] = 2.617194190469473E-17; // 280740
ref_n0[1160] = 1.012656987413736E-15; // 290740
ref_n0[1161] = 2.764336818424419E-13; // 300740
ref_n0[1162] = 1.565764597532101E-12; // 310740
ref_n0[1163] = 1.912783798958231E-15; // 310741
ref_n0[1164] = 1.775921296273273E-07; // 320740
ref_n0[1165] = 7.174058219990047E-14; // 330740
ref_n0[1166] = 3.828597331036470E-13; // 340740
ref_n0[1167] = 6.777584396036043E-22; // 270750
ref_n0[1168] = 7.863519744209342E-18; // 280750
ref_n0[1169] = 8.037248439514258E-16; // 290750
ref_n0[1170] = 5.618260997027431E-14; // 300750
ref_n0[1171] = 9.854912015574304E-13; // 310750
ref_n0[1172] = 3.975391340994558E-11; // 320750
ref_n0[1173] = 7.485806406597924E-15; // 320751
ref_n0[1174] = 4.421160454851284E-07; // 330750
ref_n0[1175] = 3.288825494705665E-24; // 330751
ref_n0[1176] = 2.982407057757432E-14; // 340750
ref_n0[1177] = 3.230519769504873E-28; // 350750
ref_n0[1178] = 8.717132846037750E-19; // 280760
ref_n0[1179] = 2.891464068912585E-16; // 290760
ref_n0[1180] = 5.646580412933557E-14; // 300760
ref_n0[1181] = 5.908830927511300E-13; // 310760
ref_n0[1182] = 1.203573753594040E-06; // 320760
ref_n0[1183] = 4.985144567387607E-11; // 330760
ref_n0[1184] = 1.295777794012030E-08; // 340760
ref_n0[1185] = 8.255979164512767E-20; // 280770
ref_n0[1186] = 1.139299126454574E-16; // 290770
ref_n0[1187] = 2.809001010109429E-14; // 300770
ref_n0[1188] = 5.113388605292934E-13; // 310770
ref_n0[1189] = 1.929325689753764E-09; // 320770
ref_n0[1190] = 6.690638359215536E-14; // 320771
ref_n0[1191] = 6.819764653803154E-09; // 330770
ref_n0[1192] = 2.847029135701145E-06; // 340770
ref_n0[1193] = 2.995194859571122E-15; // 340771
ref_n0[1194] = 1.711560119482676E-17; // 350770
ref_n0[1195] = 1.652173344033329E-20; // 350771
ref_n0[1196] = 1.211450777103254E-27; // 360770
ref_n0[1197] = 1.322217937108923E-20; // 280780
ref_n0[1198] = 2.775110682390058E-17; // 290780
ref_n0[1199] = 2.140973622316519E-14; // 300780
ref_n0[1200] = 3.529991261824034E-13; // 310780
ref_n0[1201] = 6.733397328106433E-10; // 320780
ref_n0[1202] = 7.114575423477354E-10; // 330780
ref_n0[1203] = 7.903595013795263E-06; // 340780
ref_n0[1204] = 3.564214825357509E-18; // 350780
ref_n0[1205] = 3.202674122943117E-17; // 360780
ref_n0[1206] = 2.951707915662523E-18; // 290790
ref_n0[1207] = 7.168898704752067E-15; // 300790
ref_n0[1208] = 2.500506232681125E-13; // 310790
ref_n0[1209] = 3.295660396117374E-12; // 320790
ref_n0[1210] = 3.202220337036298E-12; // 320791
ref_n0[1211] = 1.527953176134540E-10; // 330790
ref_n0[1212] = 1.661527490186208E-05; // 340790
ref_n0[1213] = 6.266357350177135E-11; // 340791
ref_n0[1214] = 8.565938344944838E-09; // 350790
ref_n0[1215] = 2.382979680382088E-18; // 350791
ref_n0[1216] = 8.692372085070333E-18; // 360790
ref_n0[1217] = 1.732666967367691E-21; // 360791
ref_n0[1218] = 4.105221868723426E-32; // 370790
ref_n0[1219] = 4.518743417510141E-20; // 290800
ref_n0[1220] = 7.601277882111732E-16; // 300800
ref_n0[1221] = 9.658070226313779E-14; // 310800
ref_n0[1222] = 1.617841924800602E-11; // 320800
ref_n0[1223] = 1.033599791057864E-11; // 330800
ref_n0[1224] = 4.411643197623925E-05; // 340800
ref_n0[1225] = 2.821300646136199E-14; // 350800
ref_n0[1226] = 1.743424334915817E-13; // 350801
ref_n0[1227] = 6.744868012823927E-10; // 360800
ref_n0[1228] = 5.187068438724934E-17; // 300810
ref_n0[1229] = 4.625601412373863E-14; // 310810
ref_n0[1230] = 4.746781905761488E-12; // 320810
ref_n0[1232] = 3.686026244687097E-11; // 330810
ref_n0[1233] = 1.325369739107110E-09; // 340810
ref_n0[1234] = 2.911532403903514E-10; // 340811
ref_n0[1235] = 7.122890837078711E-05; // 350810
ref_n0[1236] = 3.842633837550583E-11; // 360810
ref_n0[1237] = 5.912839747082953E-18; // 360811
ref_n0[1238] = 2.824417000772849E-19; // 370810
ref_n0[1239] = 4.821721326558786E-18; // 300820
ref_n0[1240] = 1.516001018294558E-14; // 310820
ref_n0[1241] = 2.569706433777522E-12; // 320820
ref_n0[1242] = 2.211958477475181E-11; // 330820
ref_n0[1243] = 3.844360140880362E-12; // 330821
ref_n0[1244] = 1.122783183659393E-04; // 340820
ref_n0[1245] = 8.736526767313552E-09; // 350820
ref_n0[1246] = 2.271439352952753E-11; // 350821
ref_n0[1247] = 1.787357659386061E-06; // 360820
ref_n0[1248] = 1.885675288440735E-19; // 300830
ref_n0[1249] = 7.606636896104548E-16; // 310830
ref_n0[1250] = 4.778946614713789E-13; // 320830
ref_n0[1251] = 2.225345168575978E-11; // 330830
ref_n0[1252] = 3.320143125734761E-09; // 340830
ref_n0[1253] = 1.497736909757716E-11; // 340831
ref_n0[1254] = 2.420142710880112E-08; // 350830
ref_n0[1255] = 1.492771634306012E-04; // 360830
ref_n0[1256] = 1.832933884787269E-08; // 360831
ref_n0[1257] = 8.824492978735747E-13; // 370830
ref_n0[1258] = 3.626795031030363E-19; // 380830
ref_n0[1259] = 2.908290502221475E-15; // 310840
ref_n0[1260] = 1.086967833146489E-13; // 320840
ref_n0[1261] = 3.669107848306444E-12; // 330840
ref_n0[1262] = 8.577860853095317E-10; // 340840
ref_n0[1263] = 9.055388580707454E-09; // 350840
ref_n0[1264] = 6.835930820871590E-11; // 350841
ref_n0[1265] = 3.539797264532680E-04; // 360840
ref_n0[1266] = 3.874488722244222E-11; // 370840
ref_n0[1267] = 1.359284175913580E-11; // 380840
ref_n0[1268] = 2.115578843976778E-18; // 310850
ref_n0[1269] = 1.057587370772810E-14; // 320850
ref_n0[1270] = 1.522356783115638E-12; // 330850
ref_n0[1271] = 1.656732821056259E-10; // 340850
ref_n0[1272] = 1.118341978747355E-09; // 350850
ref_n0[1273] = 1.063826774870554E-04; // 360850
ref_n0[1274] = 1.003115628834061E-07; // 360851
ref_n0[1275] = 3.388475429032917E-04; // 370850
ref_n0[1276] = 3.299918878229718E-13; // 380850
ref_n0[1277] = 1.021033272755500E-16; // 380851
ref_n0[1278] = 2.116213027392469E-23; // 390850
ref_n0[1279] = 2.980395843165454E-18; // 310860
ref_n0[1280] = 1.635508777398767E-13; // 320860
ref_n0[1281] = 1.889054549090791E-12; // 330860
ref_n0[1282] = 8.151885122586345E-11; // 340860
ref_n0[1283] = 4.415753748004008E-10; // 350860
ref_n0[1284] = 5.871230676278994E-04; // 360860
ref_n0[1285] = 7.344534945238526E-08; // 370860
ref_n0[1286] = 3.600045197323940E-13; // 370861
ref_n0[1287] = 1.162764617540847E-06; // 380860
ref_n0[1288] = 9.639435129224969E-16; // 320870
ref_n0[1289] = 1.059747211245603E-13; // 330870
ref_n0[1290] = 1.861429091841334E-11; // 340870
ref_n0[1291] = 5.229302437240040E-10; // 350870
ref_n0[1292] = 5.455471428027558E-08; // 360870
ref_n0[1293] = 8.126986045266120E-04; // 370870
ref_n0[1294] = 6.379138160720160E-09; // 380870
ref_n0[1295] = 1.329419091305515E-12; // 380871
ref_n0[1296] = 2.108540725864806E-15; // 390870
ref_n0[1297] = 1.567041695785348E-18; // 390871
ref_n0[1298] = 4.706408504586425E-24; // 400870
ref_n0[1299] = 1.170959609425272E-17; // 320880
ref_n0[1300] = 4.345330678330664E-14; // 330880
ref_n0[1301] = 2.355038745735668E-12; // 340880
ref_n0[1302] = 1.279207615619183E-10; // 350880
ref_n0[1303] = 1.618609355748189E-07; // 360880
ref_n0[1304] = 1.716096439871243E-08; // 370880
ref_n0[1305] = 1.099760951883071E-03; // 380880
ref_n0[1306] = 3.626024385268834E-10; // 390880
ref_n0[1307] = 8.551000209301995E-17; // 400880
ref_n0[1308] = 7.347406598835333E-20; // 320890
ref_n0[1309] = 1.191905382549496E-16; // 330890
ref_n0[1310] = 1.343628726189031E-13; // 340890
ref_n0[1311] = 2.398276069071177E-11; // 350890
ref_n0[1312] = 3.742199964555040E-09; // 360890
ref_n0[1313] = 1.926601903103498E-08; // 370890
ref_n0[1314] = 9.891352367889008E-05; // 380890
ref_n0[1315] = 1.362945483175466E-03; // 390890
ref_n0[1316] = 3.449988114419462E-14; // 390891
ref_n0[1317] = 2.500684856390140E-13; // 400890
ref_n0[1318] = 2.882896447434236E-17; // 400891
ref_n0[1319] = 1.415168718505000E-24; // 410890
ref_n0[1320] = 2.559547482482073E-18; // 330900
ref_n0[1321] = 1.546419284492680E-14; // 340900
ref_n0[1322] = 6.003667657496905E-12; // 350900
ref_n0[1323] = 6.664314611802370E-10; // 360900
ref_n0[1324] = 3.408289384212452E-09; // 370900
ref_n0[1325] = 1.030164218005100E-09; // 370901
ref_n0[1326] = 1.732504696607332E-03; // 380900
ref_n0[1327] = 4.531421781604942E-07; // 390900
ref_n0[1328] = 5.481748020554810E-12; // 390901
ref_n0[1329] = 5.263402426088398E-05; // 400900
ref_n0[1330] = 2.113370491908437E-16; // 400901
ref_n0[1331] = 1.183575044341553E-21; // 410900
ref_n0[1333] = 3.868087958142485E-19; // 330910
ref_n0[1334] = 2.788995719575682E-15; // 340910
ref_n0[1335] = 6.077167622616884E-13; // 350910
ref_n0[1336] = 1.235555473055217E-10; // 360910
ref_n0[1337] = 1.506162813971618E-09; // 370910
ref_n0[1338] = 9.580195638442957E-07; // 380910
ref_n0[1339] = 1.494497365067870E-04; // 390910
ref_n0[1340] = 4.718775460361449E-08; // 390911
ref_n0[1341] = 1.694988241945876E-03; // 400910
ref_n0[1342] = 7.368314186912099E-15; // 410910
ref_n0[1343] = 4.788222859375820E-20; // 410911
ref_n0[1344] = 4.523412801828248E-26; // 420910
ref_n0[1345] = 1.831056567506941E-20; // 330920
ref_n0[1346] = 9.288226570502935E-17; // 340920
ref_n0[1347] = 6.900378734215264E-14; // 350920
ref_n0[1348] = 1.412003701696239E-11; // 360920
ref_n0[1349] = 1.043639508224680E-10; // 370920
ref_n0[1350] = 2.847702628586645E-07; // 380920
ref_n0[1351] = 3.834231910867169E-07; // 390920
ref_n0[1352] = 1.970386012109845E-03; // 400920
ref_n0[1353] = 6.476480678811341E-13; // 410920
ref_n0[1354] = 1.484667222066618E-16; // 410921
ref_n0[1355] = 4.872011033311770E-19; // 420920
ref_n0[1356] = 2.466674318024494E-18; // 340930
ref_n0[1357] = 5.485190449755775E-15; // 350930
ref_n0[1358] = 3.168380936465836E-12; // 360930
ref_n0[1359] = 1.037554726750232E-10; // 370930
ref_n0[1360] = 1.469680821131899E-08; // 380930
ref_n0[1361] = 1.239363344692954E-06; // 390930
ref_n0[1362] = 1.765126178626869E-12; // 390931
ref_n0[1363] = 2.123488382850297E-03; // 400930
ref_n0[1364] = 1.040588026577407E-10; // 410930
ref_n0[1365] = 1.089664331892316E-09; // 410931
ref_n0[1366] = 4.036632894148182E-14; // 420930
ref_n0[1367] = 8.008257927180969E-19; // 420931
ref_n0[1368] = 1.175043617200423E-34; // 430930
ref_n0[1369] = 2.017478886453003E-19; // 340940
ref_n0[1370] = 7.551478459136224E-16; // 350940
ref_n0[1371] = 1.460127517536942E-13; // 360940
ref_n0[1372] = 2.532953233551512E-11; // 370940
ref_n0[1373] = 2.452241191062793E-09; // 380940
ref_n0[1374] = 4.001826866458005E-08; // 390940
ref_n0[1375] = 2.243534295728381E-03; // 400940
ref_n0[1376] = 3.536253703765617E-09; // 410940
ref_n0[1377] = 1.938446065010918E-14; // 410941
ref_n0[1378] = 1.753894252736765E-08; // 420940
ref_n0[1379] = 4.666678466552927E-18; // 350950
ref_n0[1380] = 1.006070172644009E-14; // 360950
ref_n0[1381] = 1.775529648321343E-12; // 370950
ref_n0[1382] = 6.870954055414973E-10; // 380950
ref_n0[1383] = 2.290502625152330E-08; // 390950
ref_n0[1384] = 2.206153715209966E-04; // 400950
ref_n0[1385] = 1.237741833948827E-04; // 410950
ref_n0[1386] = 1.348982353246684E-07; // 410951
ref_n0[1387] = 1.863677819827219E-03; // 420950
ref_n0[1388] = 7.446094274671004E-21; // 430950
ref_n0[1389] = 8.345021866845097E-20; // 430951
ref_n0[1390] = 9.547102323648204E-34; // 440950
ref_n0[1391] = 9.633641186506406E-19; // 350960
ref_n0[1392] = 1.211686951746219E-14; // 360960
ref_n0[1393] = 2.871698277207503E-13; // 370960
ref_n0[1394] = 2.222626722925458E-11; // 380960
ref_n0[1395] = 1.188812815613497E-10; // 390960
ref_n0[1396] = 1.290861929588754E-10; // 390961
ref_n0[1397] = 2.285897453743564E-03; // 400960
ref_n0[1398] = 1.044141189096590E-08; // 410960
ref_n0[1399] = 8.889960257048344E-05; // 420960
ref_n0[1400] = 2.843845227524596E-19; // 430960
ref_n0[1401] = 3.916039975640324E-24; // 440960
ref_n0[1402] = 2.008434852045615E-20; // 350970
ref_n0[1403] = 2.872782719937935E-16; // 360970
ref_n0[1404] = 3.545927090519389E-14; // 370970
ref_n0[1405] = 4.272933995263625E-12; // 380970
ref_n0[1406] = 7.608338560241998E-11; // 390970
ref_n0[1407] = 1.200634129553894E-11; // 390971
ref_n0[1408] = 2.343198752639632E-06; // 400970
ref_n0[1409] = 1.692400841076582E-07; // 410970
ref_n0[1410] = 2.454590238185472E-12; // 410971
ref_n0[1411] = 2.244287270045354E-03; // 420970
ref_n0[1412] = 3.165737278503698E-12; // 430970
ref_n0[1413] = 2.946918081181486E-13; // 430971
ref_n0[1414] = 4.191607026971007E-20; // 440970
ref_n0[1415] = 2.347850598842055E-16; // 360980
ref_n0[1416] = 6.089736853124191E-15; // 370980
ref_n0[1417] = 3.143197590479248E-12; // 380980
ref_n0[1418] = 8.066007287646109E-12; // 390980
ref_n0[1419] = 1.650859968799605E-11; // 390981
ref_n0[1420] = 1.172380887043380E-09; // 400980
ref_n0[1421] = 1.112681081845475E-10; // 410980
ref_n0[1422] = 7.340280018462037E-10; // 410981
ref_n0[1423] = 2.243815133862397E-03; // 420980
ref_n0[1424] = 1.107205315180077E-08; // 430980
ref_n0[1425] = 8.162957762226588E-13; // 440980
ref_n0[1426] = 3.855809740508470E-19; // 360990
ref_n0[1427] = 3.961425311960450E-16; // 370990
ref_n0[1428] = 2.869074294500846E-13; // 380990
ref_n0[1429] = 2.091511006578782E-11; // 390990
ref_n0[1430] = 7.959791382883909E-11; // 400990
ref_n0[1431] = 5.751195052960724E-10; // 410990
ref_n0[1432] = 5.719103841766445E-10; // 410991
ref_n0[1433] = 1.006997883434043E-05; // 420990
ref_n0[1434] = 2.117018431811489E-03; // 430990
ref_n0[1435] = 8.110190665062329E-07; // 430991
ref_n0[1436] = 8.109902116820904E-08; // 440990
ref_n0[1437] = 2.727026820244046E-21; // 450990
ref_n0[1438] = 2.537708859031056E-28; // 450991
ref_n0[1439] = 3.417956409701805E-37; // 460990
ref_n0[1440] = 1.910778518679405E-19; // 361000
ref_n0[1441] = 5.446511906103957E-15; // 371000
ref_n0[1442] = 5.896924444398072E-14; // 381000
ref_n0[1443] = 3.719895501544278E-12; // 391000
ref_n0[1444] = 2.657984488912402E-10; // 401000
ref_n0[1445] = 6.106876514832639E-11; // 411000
ref_n0[1446] = 9.795564777909470E-12; // 411001
ref_n0[1447] = 2.488103371563905E-03; // 421000
ref_n0[1448] = 1.544005576620645E-10; // 431000
ref_n0[1449] = 2.526020971016819E-04; // 441000
ref_n0[1450] = 8.430102632366864E-19; // 371010
ref_n0[1451] = 4.371715154220979E-15; // 381010
ref_n0[1452] = 9.074837169990557E-13; // 391010
ref_n0[1453] = 4.915617562254994E-11; // 401010
ref_n0[1454] = 2.696304751123838E-10; // 411010
ref_n0[1455] = 3.435946246233712E-08; // 421010
ref_n0[1456] = 3.346967579890571E-08; // 431010
ref_n0[1457] = 2.040941253722188E-03; // 441010
ref_n0[1458] = 4.043163668083972E-14; // 451010
ref_n0[1459] = 6.429024718679373E-16; // 451011
ref_n0[1460] = 6.247265911662774E-19; // 461010
ref_n0[1461] = 8.971219121476363E-20; // 371020
ref_n0[1462] = 2.323509422415311E-16; // 381020
ref_n0[1463] = 3.382162883819822E-13; // 391020
ref_n0[1464] = 3.911902521419594E-11; // 401020
ref_n0[1465] = 2.812628206189772E-11; // 411020
ref_n0[1466] = 3.502902432633434E-11; // 411021
ref_n0[1467] = 2.488258539444968E-08; // 421020
ref_n0[1468] = 1.943878879115785E-10; // 431020
ref_n0[1469] = 3.006542952914169E-11; // 431021
ref_n0[1470] = 2.000605005509171E-03; // 441020
ref_n0[1471] = 1.339408026615350E-09; // 451020
ref_n0[1472] = 1.308828771242558E-09; // 451021
ref_n0[1473] = 3.127695627976596E-10; // 461020
ref_n0[1474] = 6.846555364777896E-18; // 381030
ref_n0[1475] = 1.740334563283692E-14; // 391030
ref_n0[1476] = 5.388082685264005E-12; // 401030
ref_n0[1477] = 2.989443298288784E-11; // 411030
ref_n0[1478] = 2.316795783996037E-09; // 421030
ref_n0[1479] = 1.909939288210844E-09; // 431030
ref_n0[1480] = 1.208796434585796E-04; // 441030
ref_n0[1481] = 1.081140596862841E-03; // 451030
ref_n0[1482] = 1.185292840012962E-07; // 451031
ref_n0[1483] = 1.450470935703247E-10; // 461030
ref_n0[1484] = 1.201483741724945E-34; // 471030
ref_n0[1485] = 6.384298103269127E-19; // 381040
ref_n0[1486] = 1.731340552750337E-15; // 391040
ref_n0[1487] = 1.286709605939751E-12; // 401040
ref_n0[1488] = 2.589521338936280E-11; // 411040
ref_n0[1489] = 3.959730637933395E-12; // 411041
ref_n0[1490] = 1.637293991974301E-09; // 421040
ref_n0[1491] = 3.197078598124817E-08; // 431040
ref_n0[1492] = 1.270525436943018E-03; // 441040
ref_n0[1493] = 8.066416417809425E-10; // 451040
ref_n0[1494] = 3.776307130160567E-10; // 451041
ref_n0[1495] = 4.641324130619450E-04; // 461040
ref_n0[1496] = 1.031739077642001E-19; // 381050
ref_n0[1497] = 1.340450962573501E-16; // 391050
ref_n0[1498] = 2.952058229243902E-13; // 401050
ref_n0[1499] = 1.177798627495503E-11; // 411050
ref_n0[1500] = 6.800949629053728E-10; // 421050
ref_n0[1501] = 1.086446680867527E-08; // 431050
ref_n0[1502] = 3.854254277767772E-07; // 441050
ref_n0[1503] = 2.854881499022278E-06; // 451050
ref_n0[1504] = 2.915928421854811E-10; // 451051
ref_n0[1505] = 8.520779391350659E-04; // 461050
ref_n0[1506] = 2.500296724712259E-19; // 471050
ref_n0[1507] = 3.349424712421282E-23; // 471051
ref_n0[1508] = 3.686127355825017E-28; // 481050
ref_n0[1509] = 3.517824943906359E-19; // 391060
ref_n0[1510] = 1.410478971088349E-15; // 401060
ref_n0[1511] = 7.761806022977858E-13; // 411060
ref_n0[1512] = 9.444206992995523E-11; // 421060
ref_n0[1513] = 6.167999857447719E-10; // 431060
ref_n0[1514] = 3.769545819406741E-04; // 441060
ref_n0[1515] = 3.933086014319336E-10; // 451060
ref_n0[1516] = 1.272600514235480E-09; // 451061
ref_n0[1517] = 3.811755439070477E-04; // 461060
ref_n0[1518] = 2.035780014775862E-20; // 471060
ref_n0[1519] = 1.837158013141929E-17; // 471061
ref_n0[1520] = 3.859654415270177E-18; // 481060
ref_n0[1521] = 2.280984733731179E-20; // 391070
ref_n0[1522] = 5.694296625031634E-17; // 401070
ref_n0[1523] = 5.409921761704863E-14; // 411070
ref_n0[1524] = 1.473508224444999E-11; // 421070
ref_n0[1525] = 2.303727923439437E-10; // 431070
ref_n0[1526] = 2.979410777410462E-09; // 441070
ref_n0[1527] = 1.749121435685757E-08; // 451070
ref_n0[1528] = 4.393438680113745E-04; // 461070
ref_n0[1529] = 1.821136591807413E-13; // 461071
ref_n0[1530] = 4.068044449632898E-11; // 471070
ref_n0[1531] = 1.145768347622407E-19; // 471071
ref_n0[1532] = 7.469725357005993E-19; // 481070
ref_n0[1534] = 1.534777080725703E-22; // 391080
ref_n0[1535] = 2.829100549955217E-18; // 401080
ref_n0[1536] = 3.509669840724659E-15; // 411080
ref_n0[1537] = 1.553575397777314E-12; // 421080
ref_n0[1538] = 2.544657531442129E-11; // 431080
ref_n0[1539] = 2.409087220925728E-09; // 441080
ref_n0[1540] = 1.491733992567791E-10; // 451080
ref_n0[1541] = 1.989347903678723E-11; // 451081
ref_n0[1542] = 2.848759484869020E-04; // 461080
ref_n0[1543] = 2.690525701361747E-15; // 471080
ref_n0[1544] = 1.971278437226811E-10; // 471081
ref_n0[1545] = 3.622688469502552E-10; // 481080
ref_n0[1546] = 3.214101957108329E-19; // 401090
ref_n0[1547] = 5.538365070734745E-16; // 411090
ref_n0[1548] = 1.281370397247288E-13; // 421090
ref_n0[1549] = 1.979314983243763E-12; // 431090
ref_n0[1550] = 2.003603684082214E-10; // 441090
ref_n0[1551] = 4.827416402600791E-10; // 451090
ref_n0[1552] = 3.481148948859738E-07; // 461090
ref_n0[1553] = 6.428117643714454E-12; // 461091
ref_n0[1554] = 1.530223287504918E-04; // 471090
ref_n0[1555] = 2.793421259066605E-10; // 471091
ref_n0[1556] = 8.394922304106307E-11; // 481090
ref_n0[1557] = 1.065979246906651E-23; // 491090
ref_n0[1558] = 1.024879814430971E-20; // 401100
ref_n0[1559] = 2.653282183518606E-17; // 411100
ref_n0[1560] = 1.133806230878489E-14; // 421100
ref_n0[1561] = 4.101868535201043E-13; // 431100
ref_n0[1562] = 3.223408141946858E-11; // 441100
ref_n0[1563] = 9.047852325037405E-12; // 451100
ref_n0[1564] = 1.386634965661087E-12; // 451101
ref_n0[1565] = 9.270267503070148E-05; // 461100
ref_n0[1566] = 6.941488322310245E-11; // 471100
ref_n0[1567] = 1.139808973248508E-06; // 471101
ref_n0[1568] = 5.592903614654593E-05; // 481100
ref_n0[1569] = 1.404839607995491E-17; // 411110
ref_n0[1570] = 2.120889301308967E-15; // 421110
ref_n0[1571] = 3.049954016117120E-14; // 431110
ref_n0[1572] = 2.537580006164601E-12; // 441110
ref_n0[1573] = 1.481391677630221E-11; // 451110
ref_n0[1574] = 1.898278117323041E-09; // 461110
ref_n0[1575] = 2.116872379668564E-11; // 461111
ref_n0[1576] = 8.864429695873658E-07; // 471110
ref_n0[1577] = 8.636827104272309E-11; // 471111
ref_n0[1578] = 4.423815218207859E-05; // 481110
ref_n0[1579] = 8.368517700114640E-13; // 481111
ref_n0[1580] = 1.031812490576192E-18; // 491110
ref_n0[1581] = 1.334615234880215E-26; // 491111
ref_n0[1582] = 3.250014144872370E-25; // 501110
ref_n0[1583] = 1.001526576410983E-19; // 411120
ref_n0[1584] = 3.432617895699318E-16; // 421120
ref_n0[1585] = 7.566430150537719E-15; // 431120
ref_n0[1586] = 8.233385071065496E-13; // 441120
ref_n0[1587] = 2.108776864670473E-12; // 451120
ref_n0[1588] = 4.639820184520127E-08; // 461120
ref_n0[1589] = 6.923931435250777E-09; // 471120
ref_n0[1590] = 2.324481523197771E-05; // 481120
ref_n0[1591] = 5.688904288177280E-20; // 491120
ref_n0[1592] = 6.310218246503465E-20; // 491121
ref_n0[1593] = 4.772833119670668E-16; // 501120
ref_n0[1594] = 1.907790032601398E-20; // 411130
ref_n0[1595] = 2.044213806666200E-17; // 421130
ref_n0[1596] = 1.172539104781783E-15; // 431130
ref_n0[1597] = 1.836987008595924E-13; // 441130
ref_n0[1598] = 1.194620825494800E-12; // 451130
ref_n0[1599] = 4.033280373913704E-11; // 461130
ref_n0[1600] = 5.498798223875791E-09; // 471130
ref_n0[1601] = 2.848984455267002E-11; // 471131
ref_n0[1602] = 2.975967054466151E-07; // 481130
ref_n0[1603] = 3.886221978361406E-09; // 481131
ref_n0[1604] = 2.791548717373776E-10; // 491130
ref_n0[1605] = 2.905104552033104E-19; // 491131
ref_n0[1606] = 3.840977171873202E-17; // 501130
ref_n0[1607] = 5.999359319868619E-21; // 501131
ref_n0[1609] = 1.068629548869260E-18; // 421140
ref_n0[1610] = 2.774051661333123E-16; // 431140
ref_n0[1611] = 4.626620420239236E-14; // 441140
ref_n0[1612] = 4.502083665756379E-13; // 451140
ref_n0[1613] = 4.248463684030589E-11; // 461140
ref_n0[1614] = 1.360977855234596E-12; // 471140
ref_n0[1615] = 2.836841742357752E-05; // 481140
ref_n0[1616] = 1.368604344532836E-16; // 491140
ref_n0[1617] = 5.315767626210582E-12; // 491141
ref_n0[1618] = 5.014015898915621E-11; // 501140
ref_n0[1619] = 6.001019338628871E-20; // 421150
ref_n0[1620] = 7.336028343937349E-17; // 431150
ref_n0[1621] = 1.645166455841777E-14; // 441150
ref_n0[1622] = 1.272955528219226E-13; // 451150
ref_n0[1623] = 5.587863312851287E-12; // 461150
ref_n0[1624] = 2.730869421019045E-10; // 471150
ref_n0[1625] = 1.137269686552951E-13; // 471151
ref_n0[1626] = 4.361644476405962E-08; // 481150
ref_n0[1627] = 5.335640435718799E-08; // 481151
ref_n0[1628] = 4.146773181443037E-06; // 491150
ref_n0[1629] = 3.660199131334227E-09; // 491151
ref_n0[1630] = 4.791313770504223E-07; // 501150
ref_n0[1631] = 3.380839318170538E-30; // 511150
ref_n0[1634] = 2.688527380648263E-18; // 431160
ref_n0[1635] = 2.427800496919691E-15; // 441160
ref_n0[1636] = 3.793386201994477E-14; // 451160
ref_n0[1637] = 2.353579242149357E-12; // 461160
ref_n0[1638] = 3.628525033310354E-11; // 471160
ref_n0[1639] = 1.138196249609764E-13; // 471161
ref_n0[1640] = 1.080665603808671E-05; // 481160
ref_n0[1641] = 5.976648943793698E-13; // 491160
ref_n0[1642] = 2.286201239567355E-10; // 491161
ref_n0[1643] = 3.351172805472606E-06; // 501160
ref_n0[1644] = 1.095390067964732E-19; // 431170
ref_n0[1645] = 1.531263434836092E-16; // 441170
ref_n0[1646] = 8.975111408092510E-15; // 451170
ref_n0[1647] = 6.132713825026265E-13; // 461170
ref_n0[1648] = 1.303354732910903E-11; // 471170
ref_n0[1649] = 1.753843719205439E-13; // 471171
ref_n0[1650] = 1.883808329187252E-09; // 481170
ref_n0[1651] = 6.429482531618598E-11; // 481171
ref_n0[1652] = 3.343346933764749E-10; // 491170
ref_n0[1653] = 1.140211175809782E-09; // 491171
ref_n0[1654] = 9.813995598028701E-06; // 501170
ref_n0[1655] = 2.960024042775285E-10; // 501171
ref_n0[1656] = 1.272496581653752E-21; // 511170
ref_n0[1657] = 1.669000707424023E-36; // 521170
ref_n0[1658] = 1.850431810344745E-20; // 431180
ref_n0[1659] = 3.769737558987738E-17; // 441180
ref_n0[1660] = 2.298107907264505E-15; // 451180
ref_n0[1661] = 1.558880850803599E-13; // 461180
ref_n0[1662] = 5.557822116518549E-13; // 471180
ref_n0[1663] = 9.145441288415542E-14; // 471181
ref_n0[1664] = 5.786583468495685E-10; // 481180
ref_n0[1665] = 9.594908464943022E-13; // 491180
ref_n0[1666] = 1.499627770308194E-14; // 491181
ref_n0[1667] = 9.068275495130166E-06; // 501180
ref_n0[1668] = 1.803262720989253E-21; // 511180
ref_n0[1669] = 2.304248260647588E-19; // 511181
ref_n0[1670] = 5.022453989004651E-28; // 521180
ref_n0[1671] = 2.184022652095423E-18; // 441190
ref_n0[1672] = 7.711491656448680E-16; // 451190
ref_n0[1673] = 3.015333894859018E-14; // 461190
ref_n0[1674] = 2.648252827892332E-13; // 471190
ref_n0[1675] = 2.523961219649002E-11; // 481190
ref_n0[1676] = 3.915056971530241E-12; // 481191
ref_n0[1677] = 1.348381378944014E-11; // 491190
ref_n0[1678] = 1.101231180994872E-10; // 491191
ref_n0[1679] = 9.053301419330995E-06; // 501190
ref_n0[1680] = 4.717756412049598E-10; // 501191
ref_n0[1681] = 3.730298510052643E-16; // 511190
ref_n0[1682] = 1.330882567597297E-21; // 521190
ref_n0[1683] = 2.001692496389181E-19; // 441200
ref_n0[1684] = 7.555642689363010E-17; // 451200
ref_n0[1685] = 1.108391715336501E-14; // 461200
ref_n0[1686] = 7.469861426464588E-14; // 471200
ref_n0[1687] = 1.125916713372795E-14; // 471201
ref_n0[1688] = 9.031991117174839E-12; // 481200
ref_n0[1689] = 5.587260448213028E-13; // 491200
ref_n0[1690] = 3.414549915116828E-13; // 491201
ref_n0[1691] = 9.033054125609236E-06; // 501200
ref_n0[1692] = 1.553315879021782E-15; // 511200
ref_n0[1693] = 3.863532057561774E-13; // 511201
ref_n0[1694] = 2.884166407920259E-16; // 521200
ref_n0[1695] = 1.519310913329294E-17; // 451210
ref_n0[1696] = 2.121702650097564E-15; // 461210
ref_n0[1697] = 4.007445080549937E-14; // 471210
ref_n0[1698] = 1.385271681059100E-12; // 481210
ref_n0[1699] = 5.117394811450085E-13; // 481211
ref_n0[1700] = 3.397851676235600E-12; // 491210
ref_n0[1701] = 1.415962739336055E-11; // 491211
ref_n0[1702] = 1.935270835302221E-08; // 501210
ref_n0[1703] = 5.243435098768909E-07; // 501211
ref_n0[1704] = 8.793882200872140E-06; // 511210
ref_n0[1705] = 8.201983244353643E-14; // 521210
ref_n0[1706] = 2.759221057879585E-13; // 521211
ref_n0[1707] = 7.440579633626160E-23; // 531210
ref_n0[1708] = 4.483359828062587E-19; // 451220
ref_n0[1709] = 7.614125613786959E-16; // 461220
ref_n0[1710] = 6.267193359986468E-15; // 471220
ref_n0[1711] = 1.747364762625823E-14; // 471221
ref_n0[1712] = 7.766503951297498E-13; // 481220
ref_n0[1713] = 2.596777634203518E-13; // 491220
ref_n0[1714] = 5.129680082083710E-13; // 491221
ref_n0[1715] = 1.125627169189460E-05; // 501220
ref_n0[1716] = 5.003822076423945E-09; // 511220
ref_n0[1717] = 3.521104380790839E-13; // 511221
ref_n0[1718] = 4.813395933505816E-07; // 521220
ref_n0[1719] = 7.474772152885953E-17; // 461230
ref_n0[1720] = 3.450284389945230E-15; // 471230
ref_n0[1721] = 2.053125454547540E-13; // 481230
ref_n0[1722] = 2.624419648233941E-15; // 481231
ref_n0[1723] = 8.079714848023630E-13; // 491230
ref_n0[1724] = 3.202248450354326E-12; // 491231
ref_n0[1725] = 1.206159167499749E-06; // 501230
ref_n0[1726] = 3.217585617039382E-10; // 501231
ref_n0[1727] = 9.954891855979212E-06; // 511230
ref_n0[1728] = 3.727062631428798E-09; // 521230
ref_n0[1729] = 9.933038560599378E-10; // 521231
ref_n0[1730] = 1.407560878565932E-17; // 531230
ref_n0[1731] = 1.023967309625465E-17; // 461240
ref_n0[1732] = 9.771488206845908E-16; // 471240
ref_n0[1733] = 9.837503680957092E-14; // 481240
ref_n0[1734] = 4.636368380051827E-13; // 491240
ref_n0[1735] = 2.604035539808729E-13; // 491241
ref_n0[1736] = 1.785897849365435E-05; // 501240
ref_n0[1737] = 6.972744451577194E-08; // 511240
ref_n0[1738] = 4.600548759333012E-14; // 511241
ref_n0[1739] = 2.799639362193813E-07; // 521240
ref_n0[1740] = 5.072690952183891E-20; // 531240
ref_n0[1741] = 2.371073747115895E-21; // 541240
ref_n0[1742] = 1.902810218609032E-16; // 471250
ref_n0[1743] = 2.579215543135997E-14; // 481250
ref_n0[1744] = 3.037443057158523E-13; // 491250
ref_n0[1745] = 1.116769695790247E-12; // 491251
ref_n0[1746] = 2.613115433531631E-07; // 501250
ref_n0[1747] = 1.076254269930198E-10; // 501251
ref_n0[1748] = 1.792611309269125E-05; // 511250
ref_n0[1749] = 4.889847967335616E-06; // 521250
ref_n0[1750] = 2.156845797659832E-07; // 521251
ref_n0[1751] = 1.660536754531479E-15; // 531250
ref_n0[1752] = 1.309040152897141E-18; // 541250
ref_n0[1753] = 3.261168471321916E-22; // 541251
ref_n0[1754] = 2.459769743920873E-17; // 471260
ref_n0[1755] = 1.770035767650119E-14; // 481260
ref_n0[1756] = 1.762243862107154E-13; // 491260
ref_n0[1757] = 1.325279214886171E-13; // 491261
ref_n0[1758] = 3.800541497308499E-05; // 501260
ref_n0[1759] = 9.979191699057755E-09; // 511260
ref_n0[1760] = 1.363908119940383E-11; // 511261
ref_n0[1761] = 1.046542681190531E-06; // 521260
ref_n0[1762] = 1.271402435869367E-11; // 531260
ref_n0[1763] = 1.221612700540633E-10; // 541260
ref_n0[1764] = 2.782619897145298E-18; // 471270
ref_n0[1765] = 1.058502569718648E-14; // 481270
ref_n0[1766] = 2.887134761487687E-13; // 491270
ref_n0[1767] = 4.754081560632971E-13; // 491271
ref_n0[1768] = 1.195791106537504E-08; // 501270
ref_n0[1769] = 9.990685403183038E-11; // 501271
ref_n0[1770] = 6.926395096749554E-07; // 511270
ref_n0[1771] = 6.813782994364736E-08; // 521270
ref_n0[1772] = 5.013131668563328E-07; // 521271
ref_n0[1773] = 8.845732739800631E-05; // 531270
ref_n0[1774] = 3.635961920947587E-12; // 541270
ref_n0[1775] = 1.545383770296005E-17; // 541271
ref_n0[1776] = 6.474098868966695E-30; // 551270
ref_n0[1777] = 2.792412066483022E-19; // 471280
ref_n0[1778] = 3.387051445603613E-15; // 481280
ref_n0[1779] = 1.514041508220877E-13; // 491280
ref_n0[1780] = 1.210654293307074E-13; // 491281
ref_n0[1781] = 1.089685617225679E-08; // 501280
ref_n0[1782] = 8.846362708353312E-12; // 501281
ref_n0[1783] = 1.065124353631823E-07; // 511280
ref_n0[1784] = 1.121329984206364E-10; // 511281
ref_n0[1785] = 1.763889104713853E-04; // 521280
ref_n0[1786] = 3.097115351423024E-10; // 531280
ref_n0[1787] = 4.455873829424685E-06; // 541280
ref_n0[1788] = 3.558571719301932E-20; // 471290
ref_n0[1789] = 8.760774166918002E-17; // 481290
ref_n0[1790] = 9.180837539445178E-14; // 491290
ref_n0[1791] = 1.648883824863451E-13; // 491291
ref_n0[1792] = 4.598054126889966E-10; // 501290
ref_n0[1793] = 6.676143329805892E-10; // 501291
ref_n0[1794] = 1.003348521306492E-07; // 511290
ref_n0[1795] = 2.648934711423830E-08; // 521290
ref_n0[1796] = 8.132866518946760E-09; // 521291
ref_n0[1797] = 2.966266488895298E-04; // 531290
ref_n0[1798] = 2.172735530029216E-08; // 541290
ref_n0[1799] = 1.180354045746150E-10; // 541291
ref_n0[1800] = 1.282723743631953E-21; // 551290
ref_n0[1801] = 1.046234366191294E-31; // 561290
ref_n0[1802] = 1.024660358864116E-18; // 471300
ref_n0[1803] = 4.356035020972266E-14; // 481300
ref_n0[1804] = 9.156491427920009E-14; // 491300
ref_n0[1805] = 5.916715335803320E-14; // 491301
ref_n0[1806] = 9.305074032866381E-10; // 501300
ref_n0[1807] = 3.818721169197973E-10; // 501301
ref_n0[1808] = 1.522183006860721E-08; // 511300
ref_n0[1809] = 2.575124637180430E-09; // 511301
ref_n0[1810] = 7.568403429930784E-04; // 521300
ref_n0[1811] = 1.520558395153542E-08; // 531300
ref_n0[1812] = 1.154066102633650E-10; // 531301
ref_n0[1813] = 9.106485741465721E-06; // 541300
ref_n0[1814] = 2.869270001176748E-15; // 481310
ref_n0[1815] = 2.460427631462915E-14; // 491310
ref_n0[1816] = 1.648428288053240E-14; // 491311
ref_n0[1817] = 1.799068366346306E-10; // 501310
ref_n0[1818] = 1.797311490943200E-10; // 501311
ref_n0[1819] = 2.498663458075786E-08; // 511310
ref_n0[1820] = 3.042409843401728E-08; // 521310
ref_n0[1821] = 3.297645142535536E-07; // 521311
ref_n0[1822] = 1.581305442944200E-05; // 531310
ref_n0[1823] = 8.686837430196673E-04; // 541310
ref_n0[1824] = 3.007446257331849E-07; // 541311
ref_n0[1825] = 4.800028446677404E-14; // 551310
ref_n0[1826] = 1.383374898166571E-17; // 561310
ref_n0[1827] = 7.554644052199997E-18; // 481320
ref_n0[1828] = 1.098799077901414E-14; // 491320
ref_n0[1829] = 1.711006334338851E-10; // 501320
ref_n0[1830] = 2.487350784235328E-09; // 511320
ref_n0[1831] = 1.363577230443501E-09; // 511321
ref_n0[1832] = 8.933986901485766E-06; // 521320
ref_n0[1833] = 2.727548372358918E-07; // 531320
ref_n0[1834] = 1.974821010416137E-09; // 531321
ref_n0[1835] = 2.126130622013013E-03; // 541320
ref_n0[1836] = 2.467738441945841E-10; // 551320
ref_n0[1837] = 2.089511000625933E-10; // 561320
ref_n0[1838] = 6.540584784468628E-16; // 491330
ref_n0[1839] = 1.340303304169844E-12; // 501330
ref_n0[1840] = 2.137204874000272E-09; // 511330
ref_n0[1841] = 2.028879549848192E-08; // 521330
ref_n0[1842] = 6.557187517373553E-08; // 521331
ref_n0[1843] = 3.504081701782956E-06; // 531330
ref_n0[1844] = 1.552252116154128E-11; // 531331
ref_n0[1845] = 2.130435148608373E-05; // 541330
ref_n0[1846] = 1.118446437896223E-07; // 541331
ref_n0[1847] = 2.271229979901338E-03; // 551330
ref_n0[1848] = 9.020951847412593E-11; // 561330
ref_n0[1849] = 3.464232307274813E-23; // 571330
ref_n0[1850] = 3.128803045441775E-17; // 491340
ref_n0[1851] = 1.622192839025738E-13; // 501340
ref_n0[1852] = 2.110010880456218E-12; // 511340
ref_n0[1853] = 2.592625809477133E-11; // 511341
ref_n0[1854] = 1.052887319112069E-07; // 521340
ref_n0[1855] = 1.658017237062339E-07; // 531340
ref_n0[1856] = 1.001987764654917E-09; // 531341
ref_n0[1857] = 3.035925481161048E-03; // 541340
ref_n0[1858] = 1.868290728880338E-13; // 541341
ref_n0[1859] = 2.412807795982841E-04; // 551340
ref_n0[1860] = 1.251251408735339E-08; // 551341
ref_n0[1861] = 6.576223092688756E-05; // 561340
ref_n0[1862] = 6.826338758884453E-19; // 491350
ref_n0[1863] = 5.826015729803596E-15; // 501350
ref_n0[1864] = 2.072685111615633E-12; // 511350
ref_n0[1865] = 4.085506125681817E-10; // 521350
ref_n0[1866] = 1.055102766626869E-06; // 531350
ref_n0[1867] = 4.690529165403369E-07; // 541350
ref_n0[1868] = 6.420890766993113E-09; // 541351
ref_n0[1869] = 7.854264914117032E-04; // 551350
ref_n0[1870] = 1.836334732252478E-10; // 551351
ref_n0[1871] = 3.566859988773692E-07; // 561350
ref_n0[1872] = 2.113646421724402E-10; // 561351
ref_n0[1873] = 7.124144991177553E-17; // 571350
ref_n0[1874] = 9.946316133726629E-23; // 581350
ref_n0[1875] = 1.673985379313415E-16; // 501360
ref_n0[1876] = 1.540661950169253E-13; // 511360
ref_n0[1877] = 1.482225889854184E-10; // 521360
ref_n0[1878] = 1.490829962170556E-09; // 531360
ref_n0[1879] = 4.810347385113565E-10; // 531361
ref_n0[1880] = 4.414828398094378E-03; // 541360
ref_n0[1881] = 1.026833273380816E-06; // 551360
ref_n0[1882] = 2.879655718713715E-12; // 551361
ref_n0[1883] = 2.927519589418540E-05; // 561360
ref_n0[1884] = 3.115011471090277E-14; // 561361
ref_n0[1885] = 1.596492379085230E-17; // 501370
ref_n0[1886] = 4.897947993609216E-14; // 511370
ref_n0[1887] = 6.944410994136803E-12; // 521370
ref_n0[1888] = 5.152538119597037E-10; // 531370
ref_n0[1889] = 9.647756444104038E-09; // 541370
ref_n0[1890] = 2.380042916777930E-03; // 551370
ref_n0[1891] = 6.376637759894614E-05; // 561370
ref_n0[1892] = 3.644482541461240E-10; // 561371
ref_n0[1893] = 2.447462511668834E-10; // 571370
ref_n0[1894] = 7.868737233845937E-18; // 581370
ref_n0[1895] = 3.497884992695404E-16; // 511380
ref_n0[1896] = 7.964047627915562E-13; // 521380
ref_n0[1897] = 6.988904124273170E-11; // 531380
ref_n0[1898] = 3.386449511799391E-08; // 541380
ref_n0[1899] = 8.764563429904421E-08; // 551380
ref_n0[1900] = 4.176427456428472E-10; // 551381
ref_n0[1901] = 2.542604418352499E-03; // 561380
ref_n0[1902] = 2.525881909967757E-08; // 571380
ref_n0[1903] = 1.503613462651743E-12; // 581380
ref_n0[1904] = 1.822066495807627E-17; // 511390
ref_n0[1905] = 3.068297361608204E-14; // 521390
ref_n0[1906] = 1.106633864727081E-11; // 531390
ref_n0[1907] = 1.175805395222519E-09; // 541390
ref_n0[1908] = 2.269392231554517E-08; // 551390
ref_n0[1909] = 2.075771447983755E-07; // 561390
ref_n0[1910] = 2.374981761277396E-03; // 571390
ref_n0[1911] = 4.231959382338225E-09; // 581390
ref_n0[1912] = 1.115626194001203E-14; // 581391
ref_n0[1913] = 3.120499474938377E-17; // 591390
ref_n0[1914] = 1.845853190752661E-14; // 521400
ref_n0[1915] = 1.003160779512009E-12; // 531400
ref_n0[1916] = 2.729449961350072E-10; // 541400
ref_n0[1917] = 2.201586039344846E-09; // 551400
ref_n0[1918] = 4.439389069596610E-05; // 561400
ref_n0[1919] = 5.991557448362564E-06; // 571400
ref_n0[1920] = 2.289085864772587E-03; // 581400
ref_n0[1921] = 5.973632093295272E-14; // 591400
ref_n0[1922] = 7.913123310650594E-18; // 601400
ref_n0[1923] = 5.139393320010399E-16; // 521410
ref_n0[1924] = 1.195694545162865E-13; // 531410
ref_n0[1925] = 1.319661193893680E-11; // 541410
ref_n0[1926] = 6.713509923194783E-10; // 551410
ref_n0[1927] = 4.103023507725831E-08; // 561410
ref_n0[1928] = 5.317605498266160E-07; // 571410
ref_n0[1929] = 1.074766374928099E-04; // 581410
ref_n0[1930] = 2.034911934663903E-03; // 591410
ref_n0[1931] = 3.264527924266513E-14; // 601410
ref_n0[1932] = 2.145416100553376E-34; // 611410
ref_n0[1933] = 9.977891362350038E-18; // 521420
ref_n0[1934] = 9.740600095086454E-15; // 531420
ref_n0[1935] = 3.537350808888304E-12; // 541420
ref_n0[1936] = 2.794802854441694E-11; // 551420
ref_n0[1937] = 2.247789736667588E-08; // 561420
ref_n0[1938] = 1.991258295888766E-07; // 571420
ref_n0[1939] = 2.155061612936865E-03; // 581420
ref_n0[1940] = 8.099255556304603E-08; // 591420
ref_n0[1941] = 3.592817806320292E-10; // 591421
ref_n0[1942] = 2.799879834847436E-05; // 601420
ref_n0[1943] = 9.479158969975342E-16; // 531430
ref_n0[1944] = 2.375303808521487E-13; // 541430
ref_n0[1945] = 1.585931579645350E-11; // 551430
ref_n0[1946] = 4.599657523987451E-10; // 561430
ref_n0[1947] = 2.996554027630682E-08; // 571430
ref_n0[1948] = 4.216863242922687E-06; // 581430
ref_n0[1949] = 4.179593087224150E-05; // 591430
ref_n0[1950] = 1.629640271248965E-03; // 601430
ref_n0[1951] = 6.489393455267981E-19; // 611430
ref_n0[1952] = 4.392781282698474E-28; // 621430
ref_n0[1953] = 2.196293582019895E-29; // 621431
ref_n0[1954] = 1.136838507777850E-17; // 531440
ref_n0[1955] = 3.202435217858391E-14; // 541440
ref_n0[1956] = 3.021889635946497E-12; // 551440
ref_n0[1957] = 2.780362011591377E-10; // 561440
ref_n0[1958] = 1.284205033008610E-09; // 571440
ref_n0[1959] = 7.919293811093086E-04; // 581440
ref_n0[1960] = 3.353908710900884E-08; // 591440
ref_n0[1961] = 1.849894911285945E-10; // 591441
ref_n0[1962] = 1.577583889146780E-03; // 601440
ref_n0[1963] = 2.574025414719696E-16; // 611440
ref_n0[1964] = 7.056302045227382E-18; // 621440
ref_n0[1965] = 1.232939934208464E-15; // 541450
ref_n0[1966] = 3.949431700137064E-13; // 551450
ref_n0[1967] = 4.748540780150436E-11; // 561450
ref_n0[1968] = 5.587058599365131E-10; // 571450
ref_n0[1969] = 4.347246144981186E-09; // 581450
ref_n0[1970] = 5.189671675050111E-07; // 591450
ref_n0[1971] = 1.275040771209121E-03; // 601450
ref_n0[1972] = 2.054667120337791E-11; // 611450
ref_n0[1973] = 1.653327274907533E-13; // 621450
ref_n0[1974] = 6.793565700983709E-17; // 541460
ref_n0[1975] = 3.151522697132634E-14; // 551460
ref_n0[1976] = 1.132150843420611E-11; // 561460
ref_n0[1977] = 6.132321613823992E-11; // 571460
ref_n0[1978] = 4.680638567505183E-11; // 571461
ref_n0[1979] = 1.555102400222289E-08; // 581460
ref_n0[1980] = 2.786925508520537E-08; // 591460
ref_n0[1981] = 1.272227399858307E-03; // 601460
ref_n0[1982] = 2.564807071440701E-10; // 611460
ref_n0[1983] = 2.156697023706109E-09; // 621460
ref_n0[1984] = 2.030371807378161E-18; // 541470
ref_n0[1985] = 3.851573829001325E-15; // 551470
ref_n0[1986] = 1.278240716802289E-12; // 561470
ref_n0[1987] = 2.692043098433588E-11; // 571470
ref_n0[1988] = 7.627977009750977E-10; // 581470
ref_n0[1989] = 1.205326326584971E-08; // 591470
ref_n0[1990] = 1.419409975324989E-05; // 601470
ref_n0[1991] = 3.585753697674247E-04; // 611470
ref_n0[1992] = 1.159467466160403E-04; // 621470
ref_n0[1993] = 1.557720033587222E-21; // 631470
ref_n0[1994] = 3.428637520874144E-34; // 641470
ref_n0[1995] = 1.706152495890810E-16; // 551480
ref_n0[1996] = 1.356440646813351E-13; // 561480
ref_n0[1997] = 3.298640163173995E-12; // 571480
ref_n0[1998] = 5.552964657836717E-10; // 581480
ref_n0[1999] = 1.490925090298585E-09; // 591480
ref_n0[2000] = 1.127050365515139E-10; // 591481
ref_n0[2001] = 6.687181972799781E-04; // 601480
ref_n0[2002] = 2.385392319100650E-06; // 611480
ref_n0[2003] = 3.550784423667660E-06; // 611481
ref_n0[2004] = 2.243721647007859E-04; // 621480
ref_n0[2005] = 2.536597353612137E-18; // 551490
ref_n0[2006] = 9.573584187181833E-15; // 561490
ref_n0[2007] = 8.910865230166379E-13; // 571490
ref_n0[2008] = 2.982224203951892E-11; // 581490
ref_n0[2009] = 1.109584156360231E-09; // 591490
ref_n0[2010] = 5.323824957136280E-08; // 601490
ref_n0[2011] = 2.345630894143907E-06; // 611490
ref_n0[2012] = 5.444482491418034E-06; // 621490
ref_n0[2013] = 1.005800745083149E-16; // 631490
ref_n0[2014] = 8.159316175439471E-23; // 641490
ref_n0[2015] = 1.715412302031774E-19; // 551500
ref_n0[2016] = 8.265641305426338E-16; // 561500
ref_n0[2017] = 9.440891114447644E-14; // 571500
ref_n0[2018] = 1.215291943366483E-11; // 581500
ref_n0[2019] = 3.363584069577019E-11; // 591500
ref_n0[2020] = 3.023412212670789E-04; // 601500
ref_n0[2021] = 1.271466602809853E-09; // 611500
ref_n0[2022] = 5.115406022301521E-04; // 621500
ref_n0[2023] = 3.856838250694475E-20; // 551510
ref_n0[2024] = 1.048923983984282E-16; // 561510
ref_n0[2025] = 2.322711534677474E-14; // 571510
ref_n0[2026] = 9.532847651674083E-13; // 581510
ref_n0[2027] = 5.969473412830635E-11; // 591510
ref_n0[2028] = 3.221407373605075E-09; // 601510
ref_n0[2029] = 4.435025481038007E-07; // 611510
ref_n0[2030] = 2.613143900236731E-05; // 621510
ref_n0[2031] = 3.067536467148559E-08; // 631510
ref_n0[2032] = 1.050381005559673E-13; // 641510
ref_n0[2033] = 7.790494749073423E-33; // 651510
ref_n0[2034] = 6.717211641233504E-19; // 561520
ref_n0[2035] = 1.495681499867787E-15; // 571520
ref_n0[2036] = 3.511885041442680E-13; // 581520
ref_n0[2037] = 5.214003767010285E-12; // 591520
ref_n0[2038] = 2.052991253171511E-09; // 601520
ref_n0[2039] = 7.509630561415486E-10; // 611520
ref_n0[2040] = 3.124503878865239E-11; // 611521
ref_n0[2041] = 1.857275770673431E-04; // 621520
ref_n0[2042] = 2.640566643253705E-08; // 631520
ref_n0[2043] = 9.746415018904632E-11; // 631521
ref_n0[2044] = 4.643254117968068E-08; // 641520
ref_n0[2045] = 2.441663023008972E-20; // 561530
ref_n0[2046] = 1.081209136642635E-16; // 571530
ref_n0[2047] = 4.474648433391784E-14; // 581530
ref_n0[2048] = 2.424595222540803E-12; // 591530
ref_n0[2049] = 5.692422101516385E-11; // 601530
ref_n0[2050] = 6.358785170186346E-10; // 611530
ref_n0[2051] = 1.594015996424120E-06; // 621530
ref_n0[2052] = 1.908906691270921E-04; // 631530
ref_n0[2053] = 1.313592958310589E-09; // 641530
ref_n0[2054] = 2.749169691804593E-33; // 641531
ref_n0[2055] = 4.862040932184717E-21; // 651530
ref_n0[2056] = 1.330160909090828E-18; // 571540
ref_n0[2057] = 4.219792270879078E-15; // 581540
ref_n0[2058] = 3.282724386499617E-13; // 591540
ref_n0[2059] = 2.490037240870178E-11; // 601540
ref_n0[2060] = 1.788983725650044E-10; // 611540
ref_n0[2061] = 1.568483093836502E-11; // 611541
ref_n0[2062] = 5.667806325278731E-05; // 621540
ref_n0[2063] = 3.763103455858506E-05; // 631540
ref_n0[2064] = 2.220800146789930E-10; // 631541
ref_n0[2065] = 2.299123760475354E-06; // 641540
ref_n0[2066] = 2.475529320235984E-20; // 571550
ref_n0[2067] = 2.289645870133591E-16; // 581550
ref_n0[2068] = 2.713931915183333E-14; // 591550
ref_n0[2069] = 3.358689732347359E-12; // 601550
ref_n0[2070] = 2.972905764887180E-11; // 611550
ref_n0[2071] = 1.098348417056184E-09; // 621550
ref_n0[2072] = 1.140152151637877E-05; // 631550
ref_n0[2073] = 1.092310438331432E-07; // 641550
ref_n0[2074] = 2.452298283787207E-19; // 641551
ref_n0[2075] = 1.142723548463112E-17; // 651550
ref_n0[2076] = 4.587422473788331E-23; // 661550
ref_n0[2077] = 4.451152083027168E-18; // 581560
ref_n0[2078] = 3.618560237615085E-15; // 591560
ref_n0[2079] = 7.601808627719325E-13; // 601560
ref_n0[2080] = 1.064222619545730E-11; // 611560
ref_n0[2081] = 1.797178186953255E-08; // 621560
ref_n0[2082] = 5.589944364863768E-06; // 631560
ref_n0[2083] = 9.190355118862464E-05; // 641560
ref_n0[2084] = 3.994308143692326E-16; // 651560
ref_n0[2085] = 7.974850584964425E-18; // 651561
ref_n0[2086] = 4.734619740081711E-19; // 661560
ref_n0[2087] = 5.802624196108085E-20; // 581570
ref_n0[2088] = 1.741026420857062E-16; // 591570
ref_n0[2089] = 6.626245561793042E-14; // 601570
ref_n0[2090] = 1.990010361557411E-12; // 611570
ref_n0[2091] = 1.572595976844143E-10; // 621570
ref_n0[2092] = 2.455158508825174E-08; // 631570
ref_n0[2093] = 1.838940756560508E-07; // 641570
ref_n0[2094] = 2.800094109219553E-13; // 651570
ref_n0[2095] = 3.075032212351227E-20; // 661570
ref_n0[2096] = 7.471226611657258E-18; // 591580
ref_n0[2097] = 8.315207547082825E-15; // 601580
ref_n0[2098] = 3.116549882454149E-13; // 611580
ref_n0[2099] = 5.804689793157611E-11; // 621580
ref_n0[2100] = 5.473006186501843E-10; // 631580
ref_n0[2101] = 2.252932972849190E-05; // 641580
ref_n0[2102] = 2.005378901994711E-11; // 651580
ref_n0[2103] = 6.016567640049492E-18; // 651581
ref_n0[2104] = 7.489036317431881E-14; // 661580
ref_n0[2105] = 1.519419939566934E-19; // 591590
ref_n0[2106] = 4.485412739168580E-16; // 601590
ref_n0[2107] = 2.386247595780365E-14; // 611590
ref_n0[2108] = 8.687803247443995E-13; // 621590
ref_n0[2109] = 1.060427453297064E-10; // 631590
ref_n0[2110] = 7.941478098476595E-09; // 641590
ref_n0[2111] = 3.168262040918098E-06; // 651590
ref_n0[2112] = 8.712898393417011E-14; // 661590
ref_n0[2113] = 9.840942053143151E-23; // 671590
ref_n0[2114] = 4.911153937583605E-26; // 671591
ref_n0[2115] = 1.255100386370540E-17; // 601600
ref_n0[2116] = 5.101474113974808E-15; // 611600
ref_n0[2117] = 2.471701876356610E-13; // 621600
ref_n0[2118] = 1.583881317381578E-12; // 631600
ref_n0[2119] = 1.414817643611236E-06; // 641600
ref_n0[2120] = 8.899991588101298E-08; // 651600
ref_n0[2121] = 1.911057648738290E-07; // 661600
ref_n0[2122] = 3.473898122515496E-19; // 601610
ref_n0[2123] = 2.051584222738593E-16; // 611610
ref_n0[2124] = 3.028857633979553E-14; // 621610
ref_n0[2125] = 4.358067034016124E-13; // 631610
ref_n0[2126] = 4.519252827400579E-12; // 641610
ref_n0[2127] = 1.404101421411484E-08; // 651610
ref_n0[2128] = 4.692829786966608E-07; // 661610
ref_n0[2129] = 1.703640838563345E-19; // 671610
ref_n0[2130] = 9.399749359205711E-24; // 671611
ref_n0[2131] = 2.015579615828725E-23; // 681610
ref_n0[2132] = 4.021798652588811E-18; // 611620
ref_n0[2133] = 9.049833838710893E-16; // 621620
ref_n0[2134] = 3.159409078409158E-14; // 631620
ref_n0[2135] = 3.113815524957187E-12; // 641620
ref_n0[2136] = 3.001071761432523E-12; // 651620
ref_n0[2137] = 3.073457281370540E-07; // 661620
ref_n0[2138] = 1.857822343273919E-19; // 671620
ref_n0[2139] = 8.011059967891449E-19; // 671621
ref_n0[2140] = 3.515165976236258E-19; // 681620
ref_n0[2141] = 1.524467566724057E-19; // 611630
ref_n0[2142] = 5.972860315955755E-17; // 621630
ref_n0[2143] = 4.547760213245108E-15; // 631630
ref_n0[2144] = 1.648179759139093E-13; // 641630
ref_n0[2145] = 3.155957415483110E-12; // 651630
ref_n0[2146] = 2.233491157168911E-07; // 661630
ref_n0[2147] = 7.920746416667201E-14; // 671630
ref_n0[2148] = 5.126791849667942E-22; // 671631
ref_n0[2149] = 2.191027832069882E-21; // 681630
ref_n0[2150] = 4.363058647479457E-18; // 621640
ref_n0[2151] = 2.838656613393694E-16; // 631640
ref_n0[2152] = 3.671051271229533E-14; // 641640
ref_n0[2153] = 1.863976793999489E-13; // 651640
ref_n0[2154] = 5.837377489470982E-08; // 661640
ref_n0[2155] = 1.100982603768154E-16; // 671640
ref_n0[2156] = 7.716980867264968E-17; // 671641
ref_n0[2157] = 5.174511529304449E-13; // 681640
ref_n0[2158] = 1.984740673564986E-19; // 621650
ref_n0[2159] = 3.063069771054199E-17; // 631650
ref_n0[2160] = 2.528333878968657E-15; // 641650
ref_n0[2161] = 5.472184610473753E-14; // 651650
ref_n0[2162] = 3.524948173440706E-11; // 661650
ref_n0[2163] = 2.042323561131820E-13; // 661651
ref_n0[2164] = 6.958352017705645E-08; // 671650
ref_n0[2165] = 4.446449914604851E-16; // 681650
ref_n0[2166] = 1.002865600903528E-21; // 691650
ref_n0[2167] = 2.546136647125122E-18; // 631660
ref_n0[2168] = 5.727384749168742E-16; // 641660
ref_n0[2169] = 4.116905618402565E-15; // 651660
ref_n0[2170] = 7.370538095166838E-11; // 661660
ref_n0[2171] = 1.001295125669753E-10; // 671660
ref_n0[2172] = 9.273789615759813E-11; // 671661
ref_n0[2173] = 2.000258890181857E-08; // 681660
ref_n0[2174] = 2.817695619330091E-21; // 691660
ref_n0[2175] = 8.085836608127289E-31; // 701660
ref_n0[2176] = 2.446222535112018E-19; // 631670
ref_n0[2177] = 5.989785728930107E-17; // 641670
ref_n0[2178] = 1.144920947729119E-15; // 651670
ref_n0[2179] = 3.016594081918862E-14; // 661670
ref_n0[2180] = 1.352315449081097E-12; // 671670
ref_n0[2181] = 1.459994290792884E-09; // 681670
ref_n0[2182] = 1.342515368523360E-16; // 681671
ref_n0[2183] = 1.056727068111347E-18; // 691670
ref_n0[2184] = 1.442455610811831E-25; // 701670
ref_n0[2185] = 2.054179476817425E-18; // 641680
ref_n0[2186] = 2.175843688152726E-16; // 651680
ref_n0[2187] = 2.144587509715878E-14; // 661680
ref_n0[2188] = 7.575584322233965E-15; // 671680
ref_n0[2189] = 4.929839720845072E-09; // 681680
ref_n0[2190] = 2.044960355720656E-15; // 691680
ref_n0[2191] = 1.341171877439107E-19; // 701680
ref_n0[2192] = 1.370111399087269E-18; // 641690
ref_n0[2193] = 2.043734342881612E-17; // 651690
ref_n0[2194] = 7.673530444045263E-16; // 661690
ref_n0[2195] = 5.999214634399102E-15; // 671690
ref_n0[2196] = 1.981720742125043E-11; // 681690
ref_n0[2197] = 5.624898965632322E-10; // 691690
ref_n0[2198] = 1.887195886117666E-16; // 701690
ref_n0[2199] = 4.369412857071789E-22; // 701691
ref_n0[2200] = 6.375479806399609E-33; // 711690
ref_n0[2201] = 4.539726520398888E-36; // 711691
ref_n0[2202] = 8.856030658516608E-18; // 651700
ref_n0[2203] = 2.482190790088454E-16; // 661700
ref_n0[2204] = 1.464013917599575E-15; // 671700
ref_n0[2205] = 2.435171669548334E-17; // 671701
ref_n0[2206] = 3.910359300887307E-10; // 681700
ref_n0[2207] = 1.088451994518491E-10; // 691700
ref_n0[2208] = 1.866482958952671E-10; // 701700
ref_n0[2209] = 3.568416440382663E-19; // 651710
ref_n0[2210] = 2.020868558954894E-17; // 661710
ref_n0[2211] = 2.392330696689221E-16; // 671710
ref_n0[2212] = 1.349798597732981E-13; // 681710
ref_n0[2213] = 1.409072338031217E-10; // 691710
ref_n0[2214] = 6.651757026178768E-11; // 701710
ref_n0[2215] = 1.001915625089754E-21; // 711710
ref_n0[2216] = 5.899048214666837E-26; // 711711
ref_n0[2218] = 1.050854010433704E-17; // 661720
ref_n0[2219] = 1.341474817117534E-16; // 671720
ref_n0[2220] = 9.911779543150348E-13; // 681720
ref_n0[2221] = 1.588888712691267E-12; // 691720
ref_n0[2222] = 2.984058715232650E-10; // 701720
ref_n0[2223] = 1.112342766796197E-20; // 711720
ref_n0[2224] = 2.289087852589056E-24; // 711721
Vec_Dbl n0( &ref_n0[0], &ref_n0[0] + itot );
return n0;
}
{
int itot = 2226;
// Composition calculated with arbitrary precision generalized TTA with
// analytic source term.
// Precision: 50000 bits, Cutoff: 0.00E+00, delta t: 8.640000000000000E+06
double ref_results[2226] = {0};
ref_results[903] = 1.253355167613265E-26; // 20030
ref_results[904] = 1.889008932892316E-05; // 20040
ref_results[909] = 1.488632849486764E-30; // 802060
ref_results[910] = 4.263228033444378E-32; // 812030
ref_results[911] = 2.458122105017654E-26; // 812050
ref_results[912] = 5.402882674004677E-29; // 812060
ref_results[913] = 3.346053538809449E-22; // 812070
ref_results[914] = 1.882610147358371E-18; // 812080
ref_results[915] = 6.319780744090036E-24; // 812090
ref_results[916] = 2.896160355741938E-29; // 812100
ref_results[917] = 1.152799256591876E-47; // 822030
ref_results[918] = 1.817914169171075E-27; // 822040
ref_results[919] = 6.227627263842644E-24; // 822050
ref_results[920] = 1.769214904803444E-18; // 822060
ref_results[921] = 3.617012646674335E-17; // 822070
ref_results[922] = 1.120411565454864E-33; // 822071
ref_results[923] = 3.091661798897896E-13; // 822080
ref_results[924] = 2.698777030722683E-20; // 822090
ref_results[925] = 1.122420820713064E-16; // 822100
ref_results[926] = 2.539361069316522E-21; // 822110
ref_results[927] = 1.095625542157766E-15; // 822120
ref_results[928] = 2.842724315799625E-24; // 822140
ref_results[929] = 6.677814058250713E-35; // 832060
ref_results[930] = 1.718126572143378E-24; // 832070
ref_results[931] = 3.192055583445254E-21; // 832080
ref_results[932] = 6.421919674697213E-16; // 832090
ref_results[933] = 6.893370025916308E-21; // 832101
ref_results[934] = 6.931022418724527E-20; // 832100
ref_results[935] = 1.505325052682072E-22; // 832110
ref_results[936] = 1.038903280840395E-16; // 832120
ref_results[938] = 6.265754032730407E-21; // 832130
ref_results[939] = 2.111128710143512E-24; // 832140
ref_results[940] = 3.231782780296150E-159; // 842070
ref_results[941] = 6.519141713058578E-27; // 842080
ref_results[942] = 1.613913564337068E-23; // 842090
ref_results[943] = 1.376177685317119E-18; // 842100
ref_results[945] = 1.669572346672006E-27; // 842110
ref_results[946] = 5.477088892709529E-27; // 842120
ref_results[947] = 9.419787965388477E-30; // 842130
ref_results[948] = 5.466743679329731E-29; // 842140
ref_results[949] = 2.087968568364688E-27; // 842150
ref_results[950] = 4.159802527486474E-21; // 842160
ref_results[951] = 3.289139753017906E-25; // 842180
ref_results[952] = 6.300547302516877E-72; // 852160
ref_results[953] = 7.388554488507593E-26; // 852170
ref_results[954] = 5.304834534848418E-31; // 852180
ref_results[955] = 3.319405699719836E-75; // 862160
ref_results[956] = 8.646668460115753E-32; // 862170
ref_results[957] = 1.158366046413510E-26; // 862180
ref_results[958] = 4.642535128384525E-24; // 862190
ref_results[959] = 1.595069143894500E-18; // 862200
ref_results[960] = 5.841544401388359E-22; // 862220
ref_results[961] = 5.774710892371677E-67; // 872200
ref_results[962] = 6.725476704188679E-22; // 872210
ref_results[963] = 9.231982366965587E-31; // 872220
ref_results[964] = 2.273932701530992E-23; // 872230
ref_results[965] = 1.327762189692957E-72; // 882200
ref_results[966] = 1.257654535884410E-23; // 882220
ref_results[967] = 1.157759512992115E-18; // 882230
ref_results[968] = 9.071931565803660E-15; // 882240
ref_results[969] = 1.646057970039670E-18; // 882250
ref_results[970] = 9.071130446287239E-17; // 882260
ref_results[971] = 8.175089254841647E-28; // 882270
ref_results[972] = 3.221473794560648E-19; // 882280
ref_results[973] = 2.317069379872970E-63; // 892240
ref_results[974] = 1.976077093747293E-18; // 892250
ref_results[975] = 1.908210162714800E-24; // 892260
ref_results[976] = 8.576808107930510E-16; // 892270
ref_results[977] = 3.928280770301622E-23; // 892280
ref_results[978] = 6.070650766316135E-22; // 902260
ref_results[979] = 1.889759247850001E-18; // 902270
ref_results[980] = 1.773068725988491E-12; // 902280
ref_results[981] = 1.681523768566659E-13; // 902290
ref_results[982] = 1.042379189704082E-11; // 902300
ref_results[983] = 7.415116188944244E-14; // 902310
ref_results[984] = 4.789919483359092E-09; // 902320
ref_results[986] = 1.370240615608494E-11; // 902340
ref_results[987] = 8.009725981725425E-61; // 912280
ref_results[988] = 1.682345171186368E-40; // 912290
ref_results[989] = 7.882799044357592E-19; // 912300
ref_results[990] = 4.085355876127265E-11; // 912310
ref_results[991] = 9.535038420252280E-21; // 912320
ref_results[992] = 2.143561661980162E-11; // 912330
ref_results[994] = 1.587260487196341E-13; // 912340
ref_results[996] = 5.942116226214883E-19; // 922300
ref_results[997] = 7.922481718144461E-24; // 922310
ref_results[998] = 3.595830890460408E-10; // 922320
ref_results[999] = 1.289228699666378E-09; // 922330
ref_results[1000] = 3.238906018472085E-06; // 922340
ref_results[1001] = 1.793158792224302E-02; // 922350
ref_results[1002] = 5.498631685312347E-03; // 922360
ref_results[1003] = 5.557219407257829E-10; // 922370
ref_results[1004] = 9.279921572315366E-01; // 922380
ref_results[1006] = 1.746904477061770E-19; // 922400
ref_results[1008] = 4.253833986296413E-26; // 932340
ref_results[1009] = 2.665948817242978E-12; // 932350
ref_results[1010] = 1.483440205583163E-43; // 932361
ref_results[1011] = 2.557678231695565E-10; // 932360
ref_results[1012] = 5.931234730461506E-04; // 932370
ref_results[1013] = 1.184666314831060E-13; // 932380
ref_results[1014] = 8.223197575364191E-11; // 932390
ref_results[1016] = 1.278213697470659E-20; // 932400
ref_results[1018] = 1.515600274354195E-09; // 942360
ref_results[1020] = 5.420509407456851E-11; // 942370
ref_results[1021] = 1.623208096837954E-04; // 942380
ref_results[1022] = 5.387450070835510E-03; // 942390
ref_results[1023] = 1.234129366059539E-03; // 942400
ref_results[1024] = 1.673076409613467E-03; // 942410
ref_results[1025] = 4.946765514200768E-04; // 942420
ref_results[1026] = 2.248868872290456E-20; // 942430
ref_results[1027] = 8.699073492873196E-09; // 942440
ref_results[1028] = 7.527358958727723E-82; // 942450
ref_results[1029] = 2.874083786048137E-24; // 942460
ref_results[1030] = 5.141733228190682E-40; // 942470
ref_results[1031] = 2.444673177142480E-76; // 952390
ref_results[1032] = 2.858410143976713E-20; // 952400
ref_results[1033] = 6.599035964428452E-05; // 952410
ref_results[1034] = 6.403948434389476E-07; // 952421
ref_results[1035] = 8.263202138860861E-12; // 952420
ref_results[1036] = 9.395424914024747E-05; // 952430
ref_results[1038] = 3.006056134909742E-22; // 952440
ref_results[1039] = 7.703200578553755E-22; // 952450
ref_results[1040] = 7.181123067061751E-27; // 952460
ref_results[1041] = 3.643646324944641E-42; // 952470
ref_results[1042] = 1.120087232422359E-16; // 962400
ref_results[1043] = 9.394436695597883E-14; // 962410
ref_results[1044] = 8.834635698137258E-06; // 962420
ref_results[1045] = 2.339019223050256E-07; // 962430
ref_results[1046] = 2.356280023406772E-05; // 962440
ref_results[1047] = 1.297729089514990E-06; // 962450
ref_results[1048] = 7.492282688476271E-08; // 962460
ref_results[1049] = 6.205077658459344E-10; // 962470
ref_results[1050] = 2.796155212279773E-11; // 962480
ref_results[1051] = 2.421536791042680E-24; // 962490
ref_results[1052] = 4.466654425028584E-18; // 962500
ref_results[1054] = 4.541546358043282E-36; // 972450
ref_results[1055] = 3.716668422618035E-44; // 972460
ref_results[1056] = 6.409508396418066E-20; // 972470
ref_results[1057] = 2.347752781606895E-18; // 972480
ref_results[1058] = 7.131291590736573E-51; // 972481
ref_results[1059] = 2.051902362214206E-13; // 972490
ref_results[1060] = 4.198692084689635E-23; // 972500
ref_results[1061] = 1.658134402912528E-25; // 972510
ref_results[1062] = 8.074542539392555E-49; // 982460
ref_results[1063] = 9.077951596321048E-19; // 982480
ref_results[1064] = 7.780682529640013E-14; // 982490
ref_results[1065] = 8.841465223025587E-14; // 982500
ref_results[1066] = 3.463490555618459E-14; // 982510
ref_results[1067] = 1.150535058964319E-14; // 982520
ref_results[1068] = 3.114959464907991E-19; // 982530
ref_results[1069] = 8.940195285720063E-21; // 982540
ref_results[1071] = 7.901813479827207E-49; // 992510
ref_results[1072] = 1.121173149162102E-23; // 992520
ref_results[1073] = 1.889293386796544E-18; // 992530
ref_results[1074] = 4.723622905021980E-38; // 992541
ref_results[1075] = 8.641856157095995E-20; // 992540
ref_results[1076] = 2.134395067765868E-21; // 992550
ref_results[1077] = 4.283768552551157E-06; // 10030
ref_results[1078] = 1.264585802770901E-07; // 20030
ref_results[1079] = 7.577986144339322E-05; // 20040
ref_results[1082] = 1.656512065274645E-303; // 280650
ref_results[1083] = 9.155343476955905E-13; // 290650
ref_results[1088] = 6.872069512773806E-26; // 280660
ref_results[1089] = 1.075754854822546E-28; // 290660
ref_results[1090] = 2.855836894169894E-10; // 300660
ref_results[1091] = 2.737765850945827E-101; // 310660
ref_results[1098] = 8.096634511666690E-24; // 290670
ref_results[1099] = 8.548779644638765E-10; // 300670
ref_results[1100] = 2.336077560729519E-31; // 310670
ref_results[1108] = 1.569094416693006E-09; // 300680
ref_results[1109] = 8.577198146686447E-29; // 310680
ref_results[1110] = 4.941553540279676E-25; // 320680
ref_results[1116] = 2.925783914994834E-68; // 300690
ref_results[1117] = 3.991440325729351E-67; // 300691
ref_results[1118] = 2.800591725493454E-09; // 310690
ref_results[1119] = 1.639285165635305E-38; // 320690
ref_results[1126] = 5.872554790808133E-09; // 300700
ref_results[1128] = 2.201598182557307E-11; // 320700
ref_results[1134] = 1.320448409769302E-195; // 300711
ref_results[1135] = 1.081302776439319E-08; // 310710
ref_results[1136] = 9.929113830366730E-18; // 320710
ref_results[1137] = 1.173241485894335E-43; // 320711
ref_results[1138] = 3.422039883847018E-35; // 330710
ref_results[1143] = 2.728766059896856E-26; // 300720
ref_results[1144] = 1.187539921830253E-26; // 310720
ref_results[1145] = 2.617494203800518E-08; // 320720
ref_results[1146] = 1.147389338884577E-34; // 330720
ref_results[1147] = 7.749563870711117E-34; // 340720
ref_results[1152] = 5.304973035838634E-160; // 310730
ref_results[1153] = 6.598745251016563E-08; // 320730
ref_results[1154] = 1.059135750938484E-165; // 320731
ref_results[1155] = 1.046313496570329E-15; // 330730
ref_results[1156] = 6.196347076792587E-124; // 340730
ref_results[1164] = 1.775940211965074E-07; // 320740
ref_results[1165] = 1.451164679681785E-15; // 330740
ref_results[1166] = 4.067581359455196E-13; // 340740
ref_results[1174] = 4.421568624523805E-07; // 330750
ref_results[1175] = 1.843914424052078E-24; // 330751
ref_results[1176] = 1.672117717413811E-14; // 340750
ref_results[1182] = 1.203574401244175E-06; // 320760
ref_results[1183] = 1.456763940210887E-38; // 330760
ref_results[1184] = 1.300762938579417E-08; // 340760
ref_results[1189] = 2.240013889854507E-73; // 320770
ref_results[1191] = 2.361939417184223E-27; // 330770
ref_results[1192] = 2.855778802197196E-06; // 340770
ref_results[1193] = 9.814532231011347E-34; // 340771
ref_results[1194] = 3.687774462187889E-30; // 350770
ref_results[1203] = 7.904980185832008E-06; // 340780
ref_results[1205] = 3.202709765091824E-17; // 360780
ref_results[1212] = 1.661548630832062E-05; // 340790
ref_results[1214] = 8.576746412579586E-09; // 350790
ref_results[1216] = 2.092039806007598E-38; // 360790
ref_results[1224] = 4.411645860947885E-05; // 340800
ref_results[1225] = 4.563229941369294E-178; // 350800
ref_results[1226] = 6.389059247118755E-177; // 350801
ref_results[1227] = 6.746725446225257E-10; // 360800
ref_results[1235] = 7.123056654463149E-05; // 350810
ref_results[1236] = 3.842631272587963E-11; // 360810
ref_results[1238] = 2.298818182779920E-177; // 370810
ref_results[1244] = 1.122783469120337E-04; // 340820
ref_results[1245] = 2.920409701328882E-29; // 350820
ref_results[1247] = 1.796116900546992E-06; // 360820
ref_results[1254] = 2.637576424071696E-309; // 350830
ref_results[1255] = 1.493230525595161E-04; // 360830
ref_results[1256] = 2.597305445418520E-16; // 360831
ref_results[1257] = 3.948793719867460E-13; // 370830
ref_results[1258] = 1.851113730779788E-41; // 380830
ref_results[1265] = 3.539897453696166E-04; // 360840
ref_results[1266] = 4.672966174143962E-12; // 370840
ref_results[1267] = 1.495571860106773E-11; // 380840
ref_results[1273] = 1.045435378852082E-04; // 360850
ref_results[1274] = 5.513087024315341E-169; // 360851
ref_results[1275] = 3.407882796042007E-04; // 370850
ref_results[1276] = 1.133313770226859E-13; // 380850
ref_results[1278] = 5.593905747336474E-293; // 390850
ref_results[1284] = 5.871236095200753E-04; // 360860
ref_results[1285] = 1.783032372734367E-09; // 370860
ref_results[1287] = 1.234423711875232E-06; // 380860
ref_results[1293] = 8.127536955557221E-04; // 370870
ref_results[1294] = 6.380468908307929E-09; // 380870
ref_results[1295] = 2.978906985759907E-269; // 380871
ref_results[1296] = 1.865343869781137E-24; // 390870
ref_results[1297] = 1.440565018812030E-72; // 390871
ref_results[1303] = 6.592978268705054E-262; // 360880
ref_results[1304] = 7.677641706134774E-263; // 370880
ref_results[1305] = 1.099940272391771E-03; // 380880
ref_results[1306] = 1.892848648750731E-10; // 390880
ref_results[1307] = 3.724490297520807E-17; // 400880
ref_results[1314] = 2.509614364516183E-05; // 380890
ref_results[1315] = 1.436785629748190E-03; // 390890
ref_results[1316] = 8.679589605402126E-15; // 390891
ref_results[1317] = 1.527747396583780E-22; // 400890
ref_results[1326] = 1.721127025464706E-03; // 380900
ref_results[1327] = 4.365878130657339E-07; // 390900
ref_results[1328] = 1.818526346153485E-238; // 390901
ref_results[1329] = 6.403336475995935E-05; // 400900
ref_results[1331] = 3.881887647733606E-71; // 410900
ref_results[1338] = 9.107652605254648E-82; // 380910
ref_results[1339] = 4.601866587580309E-05; // 390910
ref_results[1340] = 4.906963370969073E-83; // 390911
ref_results[1341] = 1.799426150124484E-03; // 400910
ref_results[1342] = 7.366289530297169E-15; // 410910
ref_results[1343] = 1.533004604450745E-20; // 410911
ref_results[1350] = 7.078397701827378E-279; // 380920
ref_results[1351] = 1.251234625555735E-210; // 390920
ref_results[1352] = 1.971054325645144E-03; // 400920
ref_results[1353] = 6.476480643390851E-13; // 410920
ref_results[1354] = 1.606174846553011E-19; // 410921
ref_results[1355] = 4.872028743557605E-19; // 420920
ref_results[1361] = 1.345872817470274E-77; // 390930
ref_results[1363] = 2.124742289151780E-03; // 400930
ref_results[1364] = 1.248985145630397E-10; // 410930
ref_results[1365] = 1.332371724522171E-09; // 410931
ref_results[1366] = 4.036521365758203E-14; // 420930
ref_results[1367] = 2.714281808901636E-124; // 420931
ref_results[1368] = 2.260312071440830E-297; // 430930
ref_results[1375] = 2.243576789318384E-03; // 400940
ref_results[1376] = 3.536239932076723E-09; // 410940
ref_results[1378] = 1.753897568351715E-08; // 420940
ref_results[1384] = 7.474018929569929E-05; // 400950
ref_results[1385] = 7.045536734632305E-05; // 410950
ref_results[1386] = 4.822698143122156E-08; // 410951
ref_results[1387] = 2.062982076078457E-03; // 420950
ref_results[1388] = 1.439566852787988E-23; // 430950
ref_results[1389] = 2.678747541725952E-20; // 430951
ref_results[1397] = 2.285897724216837E-03; // 400960
ref_results[1398] = 1.196509155362479E-39; // 410960
ref_results[1399] = 8.891004398237468E-05; // 420960
ref_results[1400] = 2.632933464409460E-26; // 430960
ref_results[1401] = 3.916039975640324E-24; // 440960
ref_results[1408] = 1.666911074594612E-49; // 400970
ref_results[1409] = 1.288822768264093E-50; // 410970
ref_results[1411] = 2.246799804324579E-03; // 420970
ref_results[1412] = 3.323889209212275E-12; // 430970
ref_results[1413] = 1.365396817493563E-13; // 430971
ref_results[1414] = 1.745639562200747E-30; // 440970
ref_results[1423] = 2.243817179183436E-03; // 420980
ref_results[1424] = 1.107205265150849E-08; // 430980
ref_results[1425] = 8.167960685080076E-13; // 440980
ref_results[1433] = 1.112986996134472E-16; // 420990
ref_results[1434] = 2.127898378189053E-03; // 430990
ref_results[1435] = 9.822146327494969E-18; // 430991
ref_results[1436] = 8.336922440937051E-08; // 440990
ref_results[1437] = 3.680639383018172E-23; // 450990
ref_results[1438] = 4.871891611451732E-182; // 450991
ref_results[1447] = 2.488103711991911E-03; // 421000
ref_results[1449] = 2.526022514991453E-04; // 441000
ref_results[1457] = 2.041009402561583E-03; // 441010
ref_results[1458] = 3.821652383112943E-14; // 451010
ref_results[1459] = 7.445876527677209E-23; // 451011
ref_results[1460] = 3.150138756771557E-104; // 461010
ref_results[1470] = 2.000630595178329E-03; // 441020
ref_results[1471] = 9.584289744478963E-10; // 451020
ref_results[1472] = 1.225920658017003E-09; // 451021
ref_results[1473] = 3.966269050799313E-10; // 461020
ref_results[1480] = 2.068246816902876E-05; // 441030
ref_results[1481] = 1.181440119856257E-03; // 451030
ref_results[1482] = 2.028843811733259E-08; // 451031
ref_results[1483] = 2.453535503860838E-12; // 461030
ref_results[1492] = 1.270559081680176E-03; // 441040
ref_results[1495] = 4.641335920073454E-04; // 461040
ref_results[1502] = 7.602870255596970E-170; // 441050
ref_results[1503] = 1.222382670551675E-26; // 451050
ref_results[1504] = 5.767359906642967E-173; // 451051
ref_results[1505] = 8.553300941028905E-04; // 461050
ref_results[1506] = 4.666390421947421E-20; // 471050
ref_results[1514] = 3.131177926922478E-04; // 441060
ref_results[1515] = 2.890931009299935E-10; // 451060
ref_results[1517] = 4.450144219593929E-04; // 461060
ref_results[1519] = 4.250985208312549E-21; // 471061
ref_results[1520] = 3.859857993264742E-18; // 481060
ref_results[1528] = 4.393645711496895E-04; // 461070
ref_results[1530] = 5.350837667127631E-11; // 471070
ref_results[1531] = 1.005274791427505E-132; // 471071
ref_results[1532] = 5.300022255476922E-130; // 481070
ref_results[1542] = 2.848785537282969E-04; // 461080
ref_results[1543] = 1.848060094443694E-19; // 471080
ref_results[1544] = 1.970383653524905E-10; // 471081
ref_results[1545] = 3.622790233723950E-10; // 481080
ref_results[1552] = 6.478845125255687E-60; // 461090
ref_results[1554] = 1.533714273249915E-04; // 471090
ref_results[1555] = 7.176251536767511E-17; // 471091
ref_results[1556] = 7.223874499010336E-11; // 481090
ref_results[1557] = 4.457837144371511E-197; // 491090
ref_results[1565] = 9.270272959920772E-05; // 461100
ref_results[1566] = 1.338884085077791E-14; // 471100
ref_results[1567] = 8.635816807333247E-07; // 471101
ref_results[1568] = 5.620532136250515E-05; // 481100
ref_results[1574] = 5.172906430485958E-144; // 461110
ref_results[1575] = 9.284358138223228E-143; // 461111
ref_results[1576] = 8.089720601764831E-11; // 471110
ref_results[1577] = 2.324313291776427E-145; // 471111
ref_results[1578] = 4.512653828457735E-05; // 481110
ref_results[1579] = 1.159288572576867E-35; // 481111
ref_results[1580] = 1.907485350557548E-29; // 491110
ref_results[1588] = 2.052750429387338E-42; // 461120
ref_results[1589] = 3.589446545695789E-43; // 471120
ref_results[1590] = 2.329814030518597E-05; // 481120
ref_results[1593] = 4.773361081044092E-16; // 501120
ref_results[1600] = 1.606761451926841E-143; // 471130
ref_results[1602] = 3.030703060196189E-07; // 481130
ref_results[1603] = 3.928462733044994E-09; // 481131
ref_results[1604] = 3.323084239715541E-10; // 491130
ref_results[1605] = 1.263304237658965E-20; // 491131
ref_results[1606] = 2.103492324854017E-17; // 501130
ref_results[1615] = 2.836846191548674E-05; // 481140
ref_results[1616] = 2.131726467187703E-17; // 491140
ref_results[1617] = 1.310818649594280E-12; // 491141
ref_results[1618] = 5.399568815204801E-11; // 501140
ref_results[1626] = 1.342503502650291E-21; // 481150
ref_results[1627] = 1.126552039804723E-08; // 481151
ref_results[1628] = 4.234042263190592E-06; // 491150
ref_results[1629] = 5.019351722646853E-15; // 491151
ref_results[1630] = 4.815085737057869E-07; // 501150
ref_results[1640] = 1.080669483123658E-05; // 481160
ref_results[1643] = 3.351402023124000E-06; // 501160
ref_results[1650] = 1.349555050211118E-299; // 481170
ref_results[1651] = 6.133863589805740E-226; // 481171
ref_results[1652] = 1.672945539064907E-226; // 491170
ref_results[1653] = 3.675878413012038E-299; // 491171
ref_results[1654] = 9.817726136584227E-06; // 501170
ref_results[1655] = 1.944018465865575E-12; // 501171
ref_results[1656] = 1.202583982545287E-279; // 511170
ref_results[1667] = 9.068855933431257E-06; // 501180
ref_results[1668] = 2.012333804266632E-36; // 511180
ref_results[1669] = 7.392654130970418E-164; // 511181
ref_results[1670] = 4.827361774671689E-33; // 521180
ref_results[1679] = 9.053553835980762E-06; // 501190
ref_results[1680] = 3.724166994162735E-10; // 501191
ref_results[1681] = 4.499568973504215E-35; // 511190
ref_results[1682] = 1.289770563699719E-66; // 521190
ref_results[1691] = 9.033064542799414E-06; // 501200
ref_results[1693] = 2.294712533241140E-18; // 511201
ref_results[1694] = 2.884166407920259E-16; // 521200
ref_results[1702] = 2.273585065540163E-11; // 501210
ref_results[1703] = 5.225377186625379E-07; // 501211
ref_results[1704] = 8.815037619999224E-06; // 511210
ref_results[1705] = 2.341658993414331E-14; // 521210
ref_results[1706] = 1.759182653973771E-13; // 521211
ref_results[1715] = 1.125639386628913E-05; // 501220
ref_results[1716] = 4.440239278612864E-20; // 511220
ref_results[1718] = 4.862231670985010E-07; // 521220
ref_results[1725] = 7.053564528180537E-07; // 501230
ref_results[1727] = 1.045602055091445E-05; // 511230
ref_results[1728] = 4.165053073301785E-09; // 521230
ref_results[1729] = 5.553134282625604E-10; // 521231
ref_results[1730] = 3.275845207833156E-72; // 531230
ref_results[1736] = 1.785897931705947E-05; // 501240
ref_results[1737] = 2.204703435389359E-08; // 511240
ref_results[1739] = 3.276443923867986E-07; // 521240
ref_results[1740] = 3.137682960405707E-27; // 531240
ref_results[1741] = 2.371073747115895E-21; // 541240
ref_results[1746] = 1.969782839356166E-10; // 501250
ref_results[1748] = 1.698055004726506E-05; // 511250
ref_results[1749] = 6.086419368715861E-06; // 521250
ref_results[1750] = 2.258998451135217E-07; // 521251
ref_results[1751] = 5.173761792818029E-16; // 531250
ref_results[1752] = 2.330415732894652E-61; // 541250
ref_results[1758] = 3.800538394391536E-05; // 501260
ref_results[1759] = 3.722700799037283E-11; // 511260
ref_results[1760] = 6.016723712369728E-15; // 511261
ref_results[1761] = 1.056536306781879E-06; // 521260
ref_results[1762] = 5.971907909136181E-14; // 531260
ref_results[1763] = 1.281467565823179E-10; // 541260
ref_results[1770] = 1.069429203889033E-14; // 511270
ref_results[1771] = 9.964201219451186E-10; // 521270
ref_results[1772] = 2.846150327819762E-07; // 521271
ref_results[1773] = 8.944586881405001E-05; // 531270
ref_results[1774] = 5.415133962208076E-13; // 541270
ref_results[1776] = 1.645083826546540E-145; // 551270
ref_results[1783] = 7.752989455201870E-88; // 511280
ref_results[1785] = 1.765064623930907E-04; // 521280
ref_results[1787] = 4.456162170860743E-06; // 541280
ref_results[1794] = 6.441358495477026E-172; // 511290
ref_results[1795] = 9.379776885599135E-13; // 521290
ref_results[1796] = 1.033508109830186E-09; // 521291
ref_results[1797] = 2.967616955962074E-04; // 531290
ref_results[1798] = 2.184892976649042E-08; // 541290
ref_results[1799] = 4.808484255622240E-14; // 541291
ref_results[1800] = 3.735913875224381E-44; // 551290
ref_results[1810] = 7.568594525216696E-04; // 521300
ref_results[1811] = 5.403005581529213E-67; // 531300
ref_results[1813] = 9.121806732026233E-06; // 541300
ref_results[1820] = 8.525703709756371E-34; // 521310
ref_results[1821] = 2.726558916282453E-31; // 521311
ref_results[1822] = 2.870272338219802E-09; // 531310
ref_results[1823] = 8.851776997936200E-04; // 541310
ref_results[1824] = 2.457488713775129E-09; // 541311
ref_results[1825] = 3.764333539184835E-17; // 551310
ref_results[1826] = 3.336315580512095E-20; // 561310
ref_results[1832] = 3.595206433635670E-15; // 521320
ref_results[1833] = 1.106031432770957E-16; // 531320
ref_results[1835] = 2.135343602762779E-03; // 541320
ref_results[1836] = 5.581331800948832E-15; // 551320
ref_results[1837] = 2.135656664954185E-10; // 561320
ref_results[1843] = 6.632667719241223E-41; // 531330
ref_results[1845] = 4.683427226073434E-11; // 541330
ref_results[1846] = 3.118954529954423E-21; // 541331
ref_results[1847] = 2.296238227294215E-03; // 551330
ref_results[1848] = 8.859523603915797E-11; // 561330
ref_results[1849] = 7.235499191450659E-208; // 571330
ref_results[1857] = 3.036197665860392E-03; // 541340
ref_results[1859] = 2.201083888477710E-04; // 551340
ref_results[1860] = 9.927236907374083E-257; // 551341
ref_results[1861] = 8.694713419148799E-05; // 561340
ref_results[1866] = 1.144666407502275E-116; // 531350
ref_results[1867] = 3.825308946931459E-85; // 541350
ref_results[1868] = 4.552212876012379E-119; // 541351
ref_results[1869] = 7.869575988783417E-04; // 551350
ref_results[1871] = 3.569622959995550E-07; // 561350
ref_results[1872] = 1.415438232214825E-35; // 561351
ref_results[1873] = 6.354224176184475E-54; // 571350
ref_results[1874] = 1.514341268713446E-63; // 581350
ref_results[1880] = 4.414830552972543E-03; // 541360
ref_results[1881] = 5.296876436907426E-09; // 551360
ref_results[1883] = 3.029673522558852E-05; // 561360
ref_results[1884] = 1.596605890025450E-16; // 561361
ref_results[1890] = 2.365079377483195E-03; // 551370
ref_results[1891] = 7.874005841200015E-05; // 561370
ref_results[1892] = 3.602791022842612E-10; // 561371
ref_results[1893] = 2.447454849142244E-10; // 571370
ref_results[1894] = 4.184180990510888E-98; // 581370
ref_results[1901] = 2.542726413985846E-03; // 561380
ref_results[1902] = 2.525881909963058E-08; // 571380
ref_results[1903] = 1.503613478818253E-12; // 581380
ref_results[1910] = 2.375214892602093E-03; // 571390
ref_results[1911] = 2.557600390237322E-09; // 581390
ref_results[1912] = 2.147964234841552E-187; // 581391
ref_results[1913] = 4.667970664032781E-181; // 591390
ref_results[1918] = 1.934993991716150E-07; // 561400
ref_results[1919] = 2.932222040609281E-08; // 571400
ref_results[1920] = 2.339250967118727E-03; // 581400
ref_results[1921] = 6.459038174312732E-30; // 591400
ref_results[1922] = 9.239247408596366E-27; // 601400
ref_results[1928] = 2.870397149953462E-191; // 571410
ref_results[1929] = 1.281183739039853E-05; // 581410
ref_results[1930] = 2.130150209955370E-03; // 591410
ref_results[1931] = 2.321513986212763E-304; // 601410
ref_results[1939] = 2.155283261758719E-03; // 581420
ref_results[1940] = 1.331600336055510E-45; // 591420
ref_results[1942] = 2.808013717355325E-05; // 601420
ref_results[1948] = 5.758637917732568E-28; // 581430
ref_results[1949] = 2.813836386017767E-07; // 591430
ref_results[1950] = 1.675402123161677E-03; // 601430
ref_results[1951] = 4.995822599644124E-19; // 611430
ref_results[1959] = 6.209098573805459E-04; // 581440
ref_results[1960] = 2.615403832785257E-08; // 591440
ref_results[1961] = 1.037608273608641E-10; // 591441
ref_results[1962] = 1.748612731708859E-03; // 601440
ref_results[1963] = 2.126590186564362E-16; // 611440
ref_results[1964] = 7.056302045227382E-18; // 621440
ref_results[1970] = 9.680584658626352E-128; // 591450
ref_results[1971] = 1.275564692379305E-03; // 601450
ref_results[1972] = 2.035787265231289E-11; // 611450
ref_results[1973] = 1.348403583799217E-13; // 621450
ref_results[1981] = 1.272270945327338E-03; // 601460
ref_results[1982] = 2.478281629892443E-10; // 611460
ref_results[1983] = 2.159638884684263E-09; // 621460
ref_results[1990] = 2.575480404809937E-08; // 601470
ref_results[1991] = 3.468945673969470E-04; // 611470
ref_results[1992] = 1.418087381981270E-04; // 621470
ref_results[1993] = 8.777936960140404E-23; // 631470
ref_results[1994] = 3.565534741492484E-53; // 641470
ref_results[2001] = 6.687203596537744E-04; // 601480
ref_results[2002] = 4.164524463884059E-09; // 611480
ref_results[2003] = 6.626067283261998E-07; // 611481
ref_results[2004] = 2.296415701511569E-04; // 621480
ref_results[2011] = 5.883558551980857E-20; // 611490
ref_results[2012] = 7.844491931871918E-06; // 621490
ref_results[2013] = 4.777154693583771E-17; // 631490
ref_results[2014] = 4.653400468610355E-26; // 641490
ref_results[2020] = 3.023412671489300E-04; // 601500
ref_results[2021] = 3.360939680901678E-279; // 611500
ref_results[2022] = 5.115418736967549E-04; // 621500
ref_results[2029] = 1.621999365058537E-32; // 611510
ref_results[2030] = 2.652225482104206E-05; // 621510
ref_results[2031] = 8.664421741568750E-08; // 631510
ref_results[2032] = 6.005909844906346E-14; // 641510
ref_results[2033] = 7.297725029470925E-74; // 651510
ref_results[2041] = 1.857307091904030E-04; // 621520
ref_results[2042] = 2.603806345737678E-08; // 631520
ref_results[2043] = 2.516615586653682E-88; // 631521
ref_results[2044] = 4.660625124779586E-08; // 641520
ref_results[2051] = 3.917592092068699E-22; // 621530
ref_results[2052] = 1.924857094352159E-04; // 631530
ref_results[2053] = 9.845535988986208E-10; // 641530
ref_results[2054] = 3.754653831967384E-46; // 641531
ref_results[2055] = 6.640288764753263E-34; // 651530
ref_results[2062] = 5.667844746504261E-05; // 621540
ref_results[2063] = 3.680927535639080E-05; // 631540
ref_results[2065] = 3.120940673232493E-06; // 641540
ref_results[2072] = 1.095633778319436E-05; // 631550
ref_results[2073] = 5.555462405452058E-07; // 641550
ref_results[2075] = 2.508650211964613E-23; // 651550
ref_results[2076] = 4.840969393248602E-96; // 661550
ref_results[2081] = 2.491694602100195E-85; // 621560
ref_results[2082] = 5.848699531426845E-08; // 631560
ref_results[2083] = 9.745299174640345E-05; // 641560
ref_results[2084] = 9.665931620920444E-22; // 651560
ref_results[2085] = 1.963143609132815E-47; // 651561
ref_results[2086] = 4.734619740081711E-19; // 661560
ref_results[2092] = 6.301709601839711E-56; // 631570
ref_results[2093] = 2.086049775298330E-07; // 641570
ref_results[2094] = 2.792619971026620E-13; // 651570
ref_results[2095] = 5.401175239717847E-109; // 661570
ref_results[2101] = 2.252993541361031E-05; // 641580
ref_results[2102] = 2.003266302473280E-11; // 651580
ref_results[2104] = 7.839830708182228E-14; // 661580
ref_results[2110] = 6.442657027452398E-48; // 641590
ref_results[2111] = 3.176310488069540E-06; // 651590
ref_results[2112] = 5.391274812073878E-14; // 661590
ref_results[2119] = 1.414819479778417E-06; // 641600
ref_results[2120] = 3.412117324375339E-08; // 651600
ref_results[2121] = 2.459845075110886E-07; // 661600
ref_results[2127] = 6.145475579684044E-13; // 651610
ref_results[2128] = 4.833283639153508E-07; // 661610
ref_results[2129] = 5.853462979966194E-248; // 671610
ref_results[2131] = 1.722995151361017E-248; // 681610
ref_results[2137] = 3.073518755284232E-07; // 661620
ref_results[2140] = 3.515165976236258E-19; // 681620
ref_results[2146] = 2.233524411032129E-07; // 661630
ref_results[2147] = 7.920417770381057E-14; // 671630
ref_results[2154] = 5.837399840349150E-08; // 661640
ref_results[2157] = 5.175260601580646E-13; // 681640
ref_results[2162] = 1.021727755599698E-320; // 661650
ref_results[2164] = 6.961903161678981E-08; // 671650
ref_results[2165] = 4.871077773088118E-46; // 681650
ref_results[2166] = 9.262395053301101E-46; // 691650
ref_results[2170] = 1.031890326759331E-19; // 661660
ref_results[2171] = 5.054775113048700E-20; // 671660
ref_results[2172] = 9.272323100402443E-11; // 671661
ref_results[2173] = 2.017644315253010E-08; // 681660
ref_results[2174] = 2.300988517008362E-44; // 691660
ref_results[2175] = 1.464244308452747E-43; // 701660
ref_results[2180] = 1.221710868924059E-245; // 671670
ref_results[2181] = 1.461378112493106E-09; // 681670
ref_results[2182] = 1.630278496432453E-27; // 681671
ref_results[2183] = 5.882458082890327E-22; // 691670
ref_results[2189] = 4.929870035521802E-09; // 681680
ref_results[2190] = 9.712742029280982E-16; // 691680
ref_results[2191] = 2.414858037667000E-19; // 701680
ref_results[2196] = 1.243709988408008E-14; // 681690
ref_results[2197] = 5.823016223099262E-10; // 691690
ref_results[2198] = 2.166983166870272E-17; // 701690
ref_results[2200] = 3.921106227232452E-54; // 711690
ref_results[2206] = 3.910970870661847E-10; // 681700
ref_results[2207] = 6.349288084495665E-11; // 691700
ref_results[2208] = 2.319412056491080E-10; // 701700
ref_results[2212] = 1.016279644174896E-109; // 681710
ref_results[2213] = 1.277683677504226E-10; // 691710
ref_results[2214] = 7.979167597385878E-11; // 701710
ref_results[2215] = 2.226132559090476E-25; // 711710
ref_results[2220] = 2.196507374539028E-27; // 681720
ref_results[2221] = 2.619025220982242E-23; // 691720
ref_results[2222] = 3.009860828573923E-10; // 701720
ref_results[2223] = 3.575260191653571E-25; // 711720
Vec_Dbl ref( &ref_results[0], &ref_results[0] + itot );
return ref;
}
{
int itot = 2226;
// Composition calculated with arbitrary precision generalized TTA with
// analytic source term.
// Precision: 50000 bits, Cutoff: 0.00E+00, delta t: 8.640000000000000E+06
double ref_results[2226] = {0};
ref_results[0] = 3.642639960838431E+06; // 10010
ref_results[1] = 7.034834480134949E+06; // 10020
ref_results[2] = 4.060145970127198E+06; // 10030
ref_results[3] = 6.389420536086639E+06; // 20030
ref_results[4] = 4.754265651832177E+07; // 20040
ref_results[5] = 3.465702900344096E-07; // 20050
ref_results[6] = 9.832766330736504E-01; // 20060
ref_results[7] = 1.156843056981734E+07; // 30060
ref_results[8] = 7.717770638454226E+06; // 30070
ref_results[9] = 1.070901989953310E+00; // 30080
ref_results[10] = 2.311503425720579E+06; // 40070
ref_results[11] = 1.989333362214287E-06; // 40080
ref_results[12] = 6.289654472865978E+06; // 40090
ref_results[13] = 3.811215031681960E+05; // 40100
ref_results[14] = 6.800983796258834E+00; // 40110
ref_results[15] = 5.296509379800946E+06; // 50100
ref_results[16] = 5.484718299344573E+06; // 50110
ref_results[17] = 7.914818561645757E-04; // 50120
ref_results[18] = 1.559212550865099E+06; // 60120
ref_results[19] = 1.140914540518469E+07; // 60130
ref_results[20] = 7.868057027277468E+06; // 60140
ref_results[21] = 2.924827380265326E+00; // 60150
ref_results[22] = 8.131532086144454E+02; // 70130
ref_results[23] = 7.782620883796465E+06; // 70140
ref_results[24] = 1.406423373156165E+07; // 70150
ref_results[25] = 4.658462356890503E+00; // 70160
ref_results[26] = 4.949188948978800E+06; // 80160
ref_results[27] = 5.524964755339582E+06; // 80170
ref_results[28] = 3.031129289448802E+04; // 80180
ref_results[29] = 2.219387396498829E+01; // 80190
ref_results[30] = 1.126627869678354E+07; // 90190
ref_results[31] = 1.513873180817035E+01; // 90200
ref_results[32] = 9.973929511673246E+06; // 100200
ref_results[33] = 6.098876994399181E+06; // 100210
ref_results[34] = 1.277351220646634E+06; // 100220
ref_results[35] = 1.079361996014715E+01; // 100230
ref_results[36] = 5.914807622143942E+06; // 110220
ref_results[37] = 4.665977839614077E+06; // 110230
ref_results[38] = 1.223523167499370E+05; // 110240
ref_results[39] = 2.665099468973610E-02; // 110241
ref_results[40] = 5.937966946842179E+01; // 110250
ref_results[41] = 1.596682246453415E+07; // 120240
ref_results[42] = 1.443834624464403E+07; // 120250
ref_results[43] = 1.393185408938004E+05; // 120260
ref_results[44] = 9.009325171541566E+01; // 120270
ref_results[45] = 1.532259682201480E+04; // 120280
ref_results[46] = 2.920335454708162E+06; // 130260
ref_results[47] = 5.281916240636497E+06; // 130270
ref_results[48] = 4.815291589166867E+01; // 130280
ref_results[49] = 2.441927212697648E+02; // 130290
ref_results[50] = 4.095440258075971E+00; // 130300
ref_results[51] = 5.638471983348179E+06; // 140280
ref_results[52] = 3.805428182356383E+06; // 140290
ref_results[53] = 1.344387428178184E+07; // 140300
ref_results[54] = 1.204700135890519E+04; // 140310
ref_results[55] = 1.275218711289379E+06; // 140320
ref_results[56] = 1.247987821403881E+07; // 150310
ref_results[57] = 3.029568311522185E+05; // 150320
ref_results[58] = 2.916367497646721E+06; // 150330
ref_results[59] = 4.988992393211593E+00; // 150340
ref_results[60] = 4.844772672010161E+06; // 160320
ref_results[61] = 1.410199900190613E+07; // 160330
ref_results[62] = 3.669724203238942E+06; // 160340
ref_results[63] = 1.321588616300911E+06; // 160350
ref_results[64] = 5.943186056580067E+06; // 160360
ref_results[65] = 3.235513588215389E+02; // 160370
ref_results[66] = 7.387627738377607E+06; // 170350
ref_results[67] = 6.352871084347351E+05; // 170360
ref_results[68] = 1.317396486595391E+07; // 170370
ref_results[69] = 2.699427910782176E+03; // 170380
ref_results[70] = 5.839884247691886E-01; // 170381
ref_results[71] = 5.526044482885879E+06; // 180360
ref_results[72] = 3.683711496134714E+06; // 180370
ref_results[73] = 9.011184516377272E+06; // 180380
ref_results[74] = 7.789371516127219E+06; // 180390
ref_results[75] = 8.438665847265445E+06; // 180400
ref_results[76] = 2.828269042981872E+03; // 180410
ref_results[77] = 1.324160672876168E+05; // 180420
ref_results[78] = 4.049336176766313E+05; // 190390
ref_results[79] = 3.540726442193517E+06; // 190400
ref_results[80] = 9.768524154784974E+06; // 190410
ref_results[81] = 2.017650230591185E+04; // 190420
ref_results[82] = 1.140643644019350E+05; // 190430
ref_results[83] = 6.154076790477326E+02; // 190440
ref_results[84] = 1.740779303790404E+06; // 200400
ref_results[85] = 8.427376612335382E+06; // 200410
ref_results[86] = 1.046645039716906E+07; // 200420
ref_results[87] = 1.044056726580347E+07; // 200430
ref_results[88] = 1.821724131754813E+07; // 200440
ref_results[89] = 2.426340780024048E+06; // 200450
ref_results[90] = 2.551816995589944E+05; // 200460
ref_results[91] = 3.453954961299464E+05; // 200470
ref_results[92] = 2.250895459433248E+05; // 200480
ref_results[93] = 1.935680512382369E+02; // 200490
ref_results[94] = 1.882875121757875E+04; // 210440
ref_results[95] = 1.202504611596846E+05; // 210441
ref_results[96] = 1.344336475212457E+07; // 210450
ref_results[97] = 6.969891703483658E-02; // 210451
ref_results[98] = 3.432786825019378E+06; // 210460
ref_results[99] = 1.017256856250212E+01; // 210461
ref_results[100] = 4.499435872599553E+05; // 210470
ref_results[101] = 2.085634386146720E+05; // 210480
ref_results[102] = 2.259987459269669E+03; // 210490
ref_results[103] = 5.606359293509338E+01; // 210500
ref_results[104] = 6.837762738846164E+06; // 220440
ref_results[105] = 5.620630682118965E+03; // 220450
ref_results[106] = 6.389365734623268E+06; // 220460
ref_results[107] = 1.519925504552181E+07; // 220470
ref_results[108] = 1.481515305990975E+07; // 220480
ref_results[109] = 1.237044057273876E+07; // 220490
ref_results[110] = 5.948440665479763E+06; // 220500
ref_results[111] = 3.344944107766595E+01; // 220510
ref_results[112] = 1.347264207290431E+06; // 230480
ref_results[113] = 5.867254630291202E+06; // 230490
ref_results[114] = 2.150252822756270E+06; // 230500
ref_results[115] = 6.954551484715279E+06; // 230510
ref_results[116] = 1.175718335727651E+02; // 230520
ref_results[117] = 9.873679939666637E+01; // 230530
ref_results[118] = 5.191971980667921E+00; // 230540
ref_results[119] = 5.733342186810513E+04; // 240480
ref_results[120] = 2.354183675304415E+03; // 240490
ref_results[121] = 8.305142084397001E+06; // 240500
ref_results[122] = 1.575691647175404E+06; // 240510
ref_results[123] = 1.665233376149346E+07; // 240520
ref_results[124] = 9.979691020002531E+06; // 240530
ref_results[125] = 8.520851107336054E+06; // 240540
ref_results[126] = 2.204365519847677E+02; // 240550
ref_results[127] = 5.214530784843630E+05; // 250520
ref_results[128] = 1.473086244260824E+06; // 250530
ref_results[129] = 1.260105164019025E+05; // 250540
ref_results[130] = 1.241125309208295E+07; // 250550
ref_results[131] = 7.894937222537669E+02; // 250560
ref_results[132] = 9.254171691166391E+01; // 250570
ref_results[133] = 1.151020740980689E+00; // 250580
ref_results[134] = 2.941646078857060E+06; // 260540
ref_results[135] = 8.645637435325921E+06; // 260550
ref_results[136] = 3.545917121113586E+06; // 260560
ref_results[137] = 1.233942289665950E+07; // 260570
ref_results[138] = 1.021674460193430E+07; // 260580
ref_results[139] = 2.430015311371131E+06; // 260590
ref_results[140] = 2.998499630983785E+06; // 260600
ref_results[141] = 4.942958682732869E+03; // 270550
ref_results[142] = 2.123939689016740E+06; // 270560
ref_results[143] = 1.268421122770552E+07; // 270570
ref_results[144] = 3.434082716431445E+04; // 270581
ref_results[145] = 9.173682946010498E+06; // 270580
ref_results[146] = 4.210372016964563E+06; // 270590
ref_results[147] = 6.458426753407041E+06; // 270600
ref_results[148] = 7.105290242605042E+01; // 270601
ref_results[149] = 8.217491229293009E+03; // 270610
ref_results[150] = 1.212979537719611E+02; // 270620
ref_results[151] = 2.156138035607597E+04; // 280560
ref_results[152] = 1.624858848704349E+05; // 280570
ref_results[153] = 5.818191994075747E+05; // 280580
ref_results[154] = 3.641934178280933E+06; // 280590
ref_results[155] = 6.329455892453128E+06; // 280600
ref_results[156] = 9.383986851953726E+06; // 280610
ref_results[157] = 2.188815909111229E+07; // 280620
ref_results[158] = 3.781152190688018E+06; // 280630
ref_results[159] = 6.512810991260852E+06; // 280640
ref_results[160] = 1.289270425707997E+04; // 280650
ref_results[161] = 1.376770017750286E+05; // 280660
ref_results[162] = 7.062967000028987E+02; // 290620
ref_results[163] = 4.848720427723825E+06; // 290630
ref_results[164] = 3.779991687238272E+04; // 290640
ref_results[165] = 1.119019477556515E+07; // 290650
ref_results[166] = 5.622515380711934E+02; // 290660
ref_results[167] = 1.796591642891199E+05; // 290670
ref_results[168] = 9.210435954150203E+02; // 300630
ref_results[169] = 5.255472721560877E+06; // 300640
ref_results[170] = 2.685924903045627E+06; // 300650
ref_results[171] = 1.585555231079778E+07; // 300660
ref_results[172] = 8.848209898488641E+06; // 300670
ref_results[173] = 8.483915907176640E+06; // 300680
ref_results[174] = 4.124946158310267E+03; // 300690
ref_results[175] = 2.298292267362934E+02; // 300691
ref_results[176] = 1.016229117002156E+05; // 300700
ref_results[177] = 1.881983962697439E+02; // 300710
ref_results[178] = 7.063532421464498E+03; // 300711
ref_results[179] = 7.652289678067931E+04; // 300720
ref_results[180] = 1.126321229052403E+05; // 310670
ref_results[181] = 2.518367925590679E+03; // 310680
ref_results[182] = 1.515472131478757E+07; // 310690
ref_results[183] = 4.983522943987995E+02; // 310700
ref_results[184] = 3.902603171841809E+07; // 310710
ref_results[185] = 7.881634288801618E+04; // 310720
ref_results[186] = 1.761867699125076E+06; // 320680
ref_results[187] = 1.755357207191146E+05; // 320690
ref_results[188] = 3.609123901252317E+06; // 320700
ref_results[189] = 3.987901445674057E+06; // 320710
ref_results[190] = 2.547537530771122E-02; // 320711
ref_results[191] = 2.386589406596449E+07; // 320720
ref_results[192] = 1.076043474378074E+07; // 320730
ref_results[193] = 1.114010319417649E+07; // 320740
ref_results[194] = 5.880023767592410E+03; // 320750
ref_results[195] = 4.501631336478335E+01; // 320751
ref_results[196] = 4.704372459512256E+06; // 320760
ref_results[197] = 1.040171089920246E+04; // 320770
ref_results[198] = 1.352195277868703E+01; // 320771
ref_results[199] = 3.382866041059011E+05; // 330710
ref_results[200] = 1.751794221099642E+05; // 330720
ref_results[201] = 5.763811065264903E+06; // 330730
ref_results[202] = 1.728796748263034E+06; // 330740
ref_results[203] = 2.401261482808166E+07; // 330750
ref_results[204] = 2.394357026333180E-02; // 330751
ref_results[205] = 2.304386884315765E+04; // 330760
ref_results[206] = 9.216826536920446E+04; // 330770
ref_results[207] = 1.030572758465825E+06; // 340720
ref_results[208] = 2.036617983707189E+04; // 340730
ref_results[209] = 4.654733971302598E+06; // 340740
ref_results[210] = 5.602925075435252E+06; // 340750
ref_results[211] = 1.777904409150681E+07; // 340760
ref_results[212] = 3.179585012202045E+07; // 340770
ref_results[213] = 2.228567821118337E+01; // 340771
ref_results[214] = 5.369723016698929E+06; // 340780
ref_results[215] = 1.018926039466770E+07; // 340790
ref_results[216] = 2.747986092861563E+02; // 340791
ref_results[217] = 7.514733592532545E+06; // 340800
ref_results[218] = 2.678575310382472E+03; // 340810
ref_results[219] = 3.680441331092155E+03; // 340811
ref_results[220] = 6.071819573821639E+06; // 340820
ref_results[221] = 8.101759834508249E+02; // 340830
ref_results[222] = 4.663997950788854E+01; // 340831
ref_results[223] = 7.828813780185966E+04; // 350760
ref_results[224] = 5.639255830514657E+05; // 350770
ref_results[225] = 3.264156441251263E+01; // 350771
ref_results[226] = 3.029650231357206E+02; // 350780
ref_results[227] = 1.293646487787920E+07; // 350790
ref_results[228] = 1.105096777011256E+03; // 350800
ref_results[229] = 1.067381367475372E+04; // 350801
ref_results[230] = 2.200837516652176E+07; // 350810
ref_results[231] = 1.898816653853196E+05; // 350820
ref_results[232] = 2.129361689058290E+02; // 350821
ref_results[233] = 1.708314275877298E+04; // 350830
ref_results[234] = 5.713948007997986E+04; // 360760
ref_results[235] = 5.818717836023729E+03; // 360770
ref_results[236] = 7.161410967254597E+06; // 360780
ref_results[237] = 2.173757860975360E+05; // 360790
ref_results[238] = 3.674803936560344E+01; // 360791
ref_results[239] = 9.231007611999519E+06; // 360800
ref_results[240] = 9.674158379619475E+06; // 360810
ref_results[241] = 1.708023401014368E+01; // 360811
ref_results[242] = 1.797397184541968E+07; // 360820
ref_results[243] = 2.180624182812784E+07; // 360830
ref_results[244] = 1.529870353659961E+04; // 360831
ref_results[245] = 1.237742922943131E+06; // 360840
ref_results[246] = 3.695281172328624E+06; // 360850
ref_results[247] = 2.473326409489485E+03; // 360851
ref_results[248] = 3.336061917548206E+06; // 360860
ref_results[249] = 2.962716210579060E+02; // 360870
ref_results[250] = 1.369633139074876E+04; // 360880
ref_results[251] = 9.448936665763949E+01; // 370820
ref_results[252] = 1.580996566066946E+06; // 370830
ref_results[253] = 4.991045589960684E+05; // 370840
ref_results[254] = 2.763014829976480E+06; // 370850
ref_results[255] = 2.893711382018122E+06; // 370860
ref_results[256] = 7.217833336803204E+01; // 370861
ref_results[257] = 2.425272376697834E+06; // 370870
ref_results[258] = 1.647729794842676E+03; // 370880
ref_results[259] = 1.229198746568181E+03; // 370890
ref_results[260] = 1.285046484487559E+06; // 380820
ref_results[261] = 1.914060249775825E+04; // 380830
ref_results[262] = 3.094818447784092E+06; // 380840
ref_results[263] = 1.231697412411862E+06; // 380850
ref_results[264] = 7.392848771188711E+02; // 380851
ref_results[265] = 2.638672029489467E+07; // 380860
ref_results[266] = 1.209972055711153E+07; // 380870
ref_results[267] = 1.366300295710190E+03; // 380871
ref_results[268] = 1.251179016472263E+07; // 380880
ref_results[269] = 9.076523738505151E+06; // 380890
ref_results[270] = 5.967846894667610E+06; // 380900
ref_results[271] = 1.358832751957891E+04; // 380910
ref_results[272] = 1.887304835745916E+02; // 380930
ref_results[273] = 9.525391801012386E+04; // 390860
ref_results[274] = 4.349199996455951E+05; // 390870
ref_results[275] = 6.380189964761768E+04; // 390871
ref_results[276] = 3.706604936536182E+06; // 390880
ref_results[277] = 1.765936812013003E+07; // 390890
ref_results[278] = 5.998568482335229E+00; // 390891
ref_results[279] = 3.791456994062612E+05; // 390900
ref_results[280] = 1.273217578182397E+04; // 390901
ref_results[281] = 4.797879978018147E+06; // 390910
ref_results[282] = 3.043149817815285E+03; // 390911
ref_results[283] = 1.604155916090360E+04; // 390920
ref_results[284] = 6.243024409474902E+04; // 390930
ref_results[285] = 7.978558147878028E-01; // 390931
ref_results[286] = 1.289229397940797E+03; // 390940
ref_results[287] = 1.978719722485304E-01; // 390960
ref_results[288] = 3.459439208084916E+04; // 400860
ref_results[289] = 8.230640624755482E+03; // 400870
ref_results[290] = 8.852219124410313E+05; // 400880
ref_results[291] = 2.081030821492342E+05; // 400890
ref_results[292] = 2.065857169847732E+07; // 400900
ref_results[293] = 6.267257059300913E+06; // 400910
ref_results[294] = 1.783388144284591E+07; // 400920
ref_results[295] = 1.291531131583671E+07; // 400930
ref_results[296] = 1.417345015524583E+07; // 400940
ref_results[297] = 4.819883904295857E+05; // 400950
ref_results[298] = 1.826705333136261E+06; // 400960
ref_results[299] = 4.764046555327909E+04; // 400970
ref_results[300] = 6.047118704222907E+04; // 410900
ref_results[301] = 7.463515390523877E+06; // 410910
ref_results[302] = 4.129838919947701E+06; // 410911
ref_results[303] = 1.021479279300090E+06; // 410920
ref_results[304] = 5.207864509327197E+05; // 410921
ref_results[305] = 2.487418346401165E+06; // 410930
ref_results[306] = 6.168076702227202E+06; // 410931
ref_results[307] = 7.922070958064817E+06; // 410940
ref_results[308] = 5.242437666228103E+06; // 410950
ref_results[309] = 3.193536109496795E+05; // 410951
ref_results[310] = 6.473826075933348E+04; // 410960
ref_results[311] = 1.067279924772178E+04; // 410970
ref_results[312] = 6.532542172695207E+01; // 410971
ref_results[313] = 3.649381404292060E+00; // 410980
ref_results[314] = 9.661711020272093E-01; // 411000
ref_results[315] = 5.098660894698805E+06; // 420920
ref_results[316] = 4.765738646514963E+03; // 420931
ref_results[317] = 3.925309393649458E+06; // 420930
ref_results[318] = 1.949252479189793E+06; // 420940
ref_results[319] = 2.502760905179757E+07; // 420950
ref_results[320] = 9.116141707809579E+06; // 420960
ref_results[321] = 1.659663061711956E+07; // 420970
ref_results[322] = 1.482823757768787E+07; // 420980
ref_results[323] = 3.403558720496095E+05; // 420990
ref_results[324] = 8.328051126978257E+06; // 421000
ref_results[325] = 9.437404446401810E+02; // 421010
ref_results[326] = 9.420669870152514E+04; // 430950
ref_results[327] = 4.233828328692097E+06; // 430951
ref_results[328] = 1.103983293924502E+05; // 430960
ref_results[329] = 7.615394140558325E+06; // 430970
ref_results[330] = 3.238305885484274E+06; // 430971
ref_results[331] = 6.283591963249189E+06; // 430980
ref_results[332] = 1.517461393873456E+07; // 430990
ref_results[333] = 4.913353046462429E+04; // 430991
ref_results[334] = 1.814557996505092E+01; // 431000
ref_results[335] = 9.850999026795305E+02; // 431010
ref_results[336] = 5.583267921099553E+06; // 440960
ref_results[337] = 1.099164347919879E+05; // 440970
ref_results[338] = 2.768074763827521E+06; // 440980
ref_results[339] = 1.168099624153738E+07; // 440990
ref_results[340] = 2.089869693920669E+07; // 441000
ref_results[341] = 1.856088218003781E+07; // 441010
ref_results[342] = 3.204110875551364E+06; // 441020
ref_results[343] = 3.527454769404598E+06; // 441030
ref_results[344] = 2.826317922663417E+06; // 441040
ref_results[345] = 1.579445293352628E+03; // 441050
ref_results[346] = 2.854752902350720E+06; // 441060
ref_results[347] = 3.102969299625141E+01; // 441070
ref_results[348] = 1.232376178395219E+06; // 450990
ref_results[349] = 1.394113430224077E+02; // 450991
ref_results[350] = 1.363117886801148E+05; // 451000
ref_results[351] = 1.033010831285042E+07; // 451010
ref_results[352] = 4.681965029668103E+05; // 451011
ref_results[353] = 5.155149161209569E+06; // 451020
ref_results[354] = 2.633506457526111E+06; // 451021
ref_results[355] = 1.202102615140413E+07; // 451030
ref_results[356] = 4.919387315641552E+03; // 451031
ref_results[357] = 1.030045387215110E+02; // 451040
ref_results[358] = 2.607741638752593E+02; // 451041
ref_results[359] = 1.409007188908448E+05; // 451050
ref_results[360] = 2.561863249804684E+01; // 451051
ref_results[361] = 3.666417072990942E+01; // 451060
ref_results[362] = 1.092801648994388E+04; // 451061
ref_results[363] = 1.478834721501979E+03; // 451070
ref_results[364] = 4.347845756250083E+05; // 461000
ref_results[365] = 1.858045532400488E+04; // 461010
ref_results[366] = 6.776682556702024E+06; // 461020
ref_results[367] = 3.162741790965586E+05; // 461030
ref_results[368] = 2.257395455563867E+07; // 461040
ref_results[369] = 1.516799080948263E+07; // 461050
ref_results[370] = 2.721969449601736E+07; // 461060
ref_results[371] = 1.172574323003300E+07; // 461070
ref_results[372] = 1.041292033899513E+01; // 461071
ref_results[373] = 6.960542631805792E+06; // 461080
ref_results[374] = 6.701135933685969E+04; // 461090
ref_results[375] = 8.517052479112161E+00; // 461091
ref_results[376] = 4.837943001132242E+06; // 461100
ref_results[377] = 9.991223311144934E+02; // 461110
ref_results[378] = 1.566861646720435E+04; // 461111
ref_results[379] = 9.014256726758805E+04; // 461120
ref_results[380] = 3.139321558846868E+06; // 471050
ref_results[381] = 4.571605497302259E+02; // 471060
ref_results[382] = 6.101689956622855E+05; // 471061
ref_results[383] = 1.563386497987131E+07; // 471070
ref_results[384] = 1.042107045879921E+02; // 471071
ref_results[385] = 1.445329629935675E+02; // 471080
ref_results[386] = 4.877779927340923E+05; // 471081
ref_results[387] = 1.860443056637330E+07; // 471090
ref_results[388] = 1.029311789344306E+02; // 471091
ref_results[389] = 7.552092215024242E+00; // 471100
ref_results[390] = 5.512256183284364E+06; // 471101
ref_results[391] = 2.132493437959218E+06; // 471110
ref_results[392] = 1.228714337290390E+02; // 471111
ref_results[393] = 2.244520634018898E+04; // 471120
ref_results[394] = 4.807759187332018E+06; // 481060
ref_results[395] = 3.303768228158217E+04; // 481070
ref_results[396] = 6.498159196882541E+06; // 481080
ref_results[397] = 5.052099934854341E+06; // 481090
ref_results[398] = 6.540938576341794E+06; // 481100
ref_results[399] = 3.540247643086174E+07; // 481110
ref_results[400] = 4.112420588220422E+03; // 481111
ref_results[401] = 1.488272676067916E+07; // 481120
ref_results[402] = 1.668328538555760E+06; // 481130
ref_results[403] = 4.770882091029173E+04; // 481131
ref_results[404] = 2.362916904090933E+06; // 481140
ref_results[405] = 2.065798708169294E+05; // 481150
ref_results[406] = 1.180174730923200E+06; // 481151
ref_results[407] = 2.780733342722045E+06; // 481160
ref_results[408] = 9.592237043609670E+03; // 481170
ref_results[409] = 1.370640799102125E+04; // 481171
ref_results[410] = 1.037052253718616E+02; // 481190
ref_results[411] = 3.663127329530246E+00; // 481210
ref_results[412] = 3.194270344407800E+05; // 491110
ref_results[413] = 2.485214336404535E+02; // 491120
ref_results[414] = 1.111497244784753E+07; // 491130
ref_results[415] = 6.758693935509134E+03; // 491131
ref_results[416] = 1.220400327713911E+02; // 491140
ref_results[417] = 3.385752907070713E+06; // 491141
ref_results[418] = 1.215907016998924E+07; // 491150
ref_results[419] = 2.191992502997658E+04; // 491151
ref_results[420] = 1.720858220064872E+01; // 491160
ref_results[421] = 2.034735130946526E+03; // 491161
ref_results[422] = 7.907454192369753E+03; // 491170
ref_results[423] = 1.325455733550985E+04; // 491171
ref_results[424] = 5.711635071562272E+00; // 491180
ref_results[425] = 1.570670246422391E+02; // 491190
ref_results[426] = 1.992889139065127E+03; // 491191
ref_results[427] = 1.690512709991565E+00; // 491200
ref_results[428] = 4.800453921105060E+01; // 491201
ref_results[429] = 3.494541595547553E+01; // 491210
ref_results[430] = 1.685690346952159E+02; // 491211
ref_results[431] = 3.944197288151428E+06; // 501120
ref_results[432] = 5.111666605989875E+06; // 501130
ref_results[433] = 1.018361555672920E+03; // 501131
ref_results[434] = 1.618597213271813E+07; // 501140
ref_results[435] = 5.052775196813665E+05; // 501150
ref_results[436] = 1.358311907882121E+07; // 501160
ref_results[437] = 3.567856087785305E+07; // 501170
ref_results[438] = 1.386620547636800E+06; // 501171
ref_results[439] = 2.350637931871512E+07; // 501180
ref_results[440] = 3.762229835562987E+07; // 501190
ref_results[441] = 2.410399432862758E+06; // 501191
ref_results[442] = 1.573604211447594E+07; // 501200
ref_results[443] = 3.323430389542682E+05; // 501210
ref_results[444] = 7.447073547631973E+06; // 501211
ref_results[445] = 5.370254703958063E+06; // 501220
ref_results[446] = 6.646433742737675E+06; // 501230
ref_results[447] = 7.015469011625449E+02; // 501231
ref_results[448] = 7.606733536848810E+06; // 501240
ref_results[449] = 8.960687793807131E+05; // 501250
ref_results[450] = 3.116099961352639E+02; // 501251
ref_results[451] = 1.047456603107700E+05; // 501260
ref_results[452] = 3.825313223610501E+02; // 511180
ref_results[453] = 2.965295986720479E+05; // 511190
ref_results[454] = 3.832728689877564E+02; // 511200
ref_results[455] = 1.579275956505590E+04; // 511201
ref_results[456] = 2.823291492084699E+07; // 511210
ref_results[457] = 1.680084197671725E+05; // 511220
ref_results[458] = 3.472052870916999E+01; // 511221
ref_results[459] = 4.981227609514769E+06; // 511230
ref_results[460] = 1.449298131809742E+06; // 511240
ref_results[461] = 4.015722951037026E+01; // 511241
ref_results[462] = 1.108062101230473E+07; // 511250
ref_results[463] = 1.120859500454692E+06; // 511260
ref_results[464] = 1.462624894574891E+02; // 511261
ref_results[465] = 3.632748464359830E+05; // 511270
ref_results[466] = 4.608177997778911E+05; // 521180
ref_results[467] = 5.978132381411226E+04; // 521190
ref_results[468] = 1.030752134024384E+05; // 521191
ref_results[469] = 2.883688307671333E+06; // 521200
ref_results[470] = 8.805888441627549E+05; // 521210
ref_results[471] = 4.100477095247425E+06; // 521211
ref_results[472] = 1.242614769934786E+07; // 521220
ref_results[473] = 1.027487205520171E+07; // 521230
ref_results[474] = 1.495835217330349E+06; // 521231
ref_results[475] = 5.216190674277553E+06; // 521240
ref_results[476] = 1.876006174824504E+07; // 521250
ref_results[477] = 1.464470774698756E+06; // 521251
ref_results[478] = 9.631219899702396E+06; // 521260
ref_results[479] = 8.007422655365546E+04; // 521270
ref_results[480] = 1.817122232109834E+06; // 521271
ref_results[481] = 7.844672232469541E+06; // 521280
ref_results[482] = 3.064837928769550E+03; // 521290
ref_results[483] = 3.335056711974171E+06; // 521291
ref_results[484] = 2.329061305121974E+06; // 521300
ref_results[485] = 1.216773104900889E+03; // 521310
ref_results[486] = 5.952088901723114E+04; // 521311
ref_results[487] = 3.591828294606478E+05; // 521320
ref_results[488] = 2.969517324455402E+02; // 531220
ref_results[489] = 5.315280811060032E+04; // 531230
ref_results[490] = 2.129156724056551E+05; // 531240
ref_results[491] = 1.294999109468112E+07; // 531250
ref_results[492] = 3.175444726502935E+04; // 531260
ref_results[493] = 2.001578790480066E+07; // 531270
ref_results[494] = 2.121829261933604E+02; // 531280
ref_results[495] = 8.727073862844106E+06; // 531290
ref_results[496] = 2.623610803058763E+04; // 531300
ref_results[497] = 1.502573508329931E+02; // 531301
ref_results[498] = 1.678938368036886E+06; // 531310
ref_results[499] = 1.117006727514588E+04; // 531320
ref_results[500] = 3.754163659339942E+04; // 531330
ref_results[501] = 8.078482845417358E+04; // 541220
ref_results[502] = 6.059374293784460E+03; // 541230
ref_results[503] = 1.770322492650593E+05; // 541240
ref_results[504] = 1.492641523999081E+05; // 541250
ref_results[505] = 6.924691376910934E+01; // 541251
ref_results[506] = 6.431305291134397E+06; // 541260
ref_results[507] = 4.968918259410887E+06; // 541270
ref_results[508] = 4.906692654546131E+01; // 541271
ref_results[509] = 1.142361963572929E+07; // 541280
ref_results[510] = 1.476231170763725E+07; // 541290
ref_results[511] = 1.263209132987272E+05; // 541291
ref_results[512] = 1.216676090393841E+07; // 541300
ref_results[513] = 2.968118358185064E+07; // 541310
ref_results[514] = 5.713523285907393E+04; // 541311
ref_results[515] = 1.347541758326795E+07; // 541320
ref_results[516] = 9.943424335820279E+05; // 541330
ref_results[517] = 2.556586147435844E+05; // 541331
ref_results[518] = 6.632875403940201E+06; // 541340
ref_results[519] = 6.233609765233326E+04; // 541350
ref_results[520] = 1.304684809728081E+03; // 541351
ref_results[521] = 1.936829350100093E+06; // 541360
ref_results[522] = 2.230451642061624E+02; // 541370
ref_results[523] = 1.332321265972634E+02; // 551280
ref_results[524] = 2.432623593044678E+05; // 551290
ref_results[525] = 2.817989520390602E+02; // 551300
ref_results[526] = 2.509768269461868E+06; // 551310
ref_results[527] = 1.672811908684132E+05; // 551320
ref_results[528] = 1.708401850393177E+07; // 551330
ref_results[529] = 1.414453073468015E+07; // 551340
ref_results[530] = 1.372149930112287E+04; // 551341
ref_results[531] = 1.928863295997468E+07; // 551350
ref_results[532] = 7.037840037683261E+05; // 551360
ref_results[533] = 8.032578904289174E+06; // 551370
ref_results[534] = 5.722998227973619E+02; // 551380
ref_results[535] = 1.948824582739251E+04; // 561280
ref_results[536] = 7.820643291614907E+03; // 561290
ref_results[537] = 8.069134666520073E+06; // 561300
ref_results[538] = 1.719866626706601E+06; // 561310
ref_results[539] = 6.782461144219018E+02; // 561311
ref_results[540] = 3.129112589846759E+06; // 561320
ref_results[541] = 3.110318869363587E+06; // 561330
ref_results[542] = 5.062694243238757E+04; // 561331
ref_results[543] = 1.595232767861418E+07; // 561340
ref_results[544] = 2.196951705774297E+07; // 561350
ref_results[545] = 1.076409160685811E+05; // 561351
ref_results[546] = 2.240444001357619E+07; // 561360
ref_results[547] = 3.593785224691994E-01; // 561361
ref_results[548] = 1.023745908319128E+07; // 561370
ref_results[549] = 1.689494984164890E+02; // 561371
ref_results[550] = 9.722890684082914E+06; // 561380
ref_results[551] = 5.135475092334495E+03; // 561390
ref_results[552] = 1.195555419612246E+06; // 561400
ref_results[553] = 5.968899717816125E+01; // 561410
ref_results[554] = 5.115851754390490E+02; // 571340
ref_results[555] = 1.117666495936062E+05; // 571350
ref_results[556] = 4.565819736835120E+02; // 571360
ref_results[557] = 1.135763468707949E+07; // 571370
ref_results[558] = 4.395625028175348E+06; // 571380
ref_results[559] = 1.561808184525336E+07; // 571390
ref_results[560] = 2.951471461756519E+05; // 571400
ref_results[561] = 1.687552252172800E+04; // 571410
ref_results[562] = 5.750666017227971E+04; // 581340
ref_results[563] = 8.449603936395305E+04; // 581350
ref_results[564] = 7.676669840240590E+06; // 581360
ref_results[565] = 3.903889072857497E+04; // 581370
ref_results[566] = 1.125944090622399E+05; // 581371
ref_results[567] = 3.384822616353033E+06; // 581380
ref_results[568] = 5.677189761792084E+06; // 581390
ref_results[569] = 3.153479501278114E+01; // 581391
ref_results[570] = 1.680303995966406E+07; // 581400
ref_results[571] = 6.213422448582370E+06; // 581410
ref_results[572] = 6.252907816765198E+06; // 581420
ref_results[573] = 8.308082631662229E+04; // 581430
ref_results[574] = 1.260980173041126E+06; // 581440
ref_results[575] = 1.017686350126283E+02; // 581450
ref_results[576] = 1.597723298429374E+02; // 591400
ref_results[577] = 1.614874936566986E+07; // 591410
ref_results[578] = 1.329281261092550E+05; // 591420
ref_results[579] = 6.308453197776290E+02; // 591421
ref_results[580] = 1.214182093332911E+06; // 591430
ref_results[581] = 1.845967222674965E+03; // 591440
ref_results[582] = 5.362448623981998E+02; // 591441
ref_results[583] = 1.979304498561027E+04; // 591450
ref_results[584] = 1.577595845769423E+05; // 601400
ref_results[585] = 5.334129575671745E+03; // 601410
ref_results[586] = 1.347669009451828E+07; // 601420
ref_results[587] = 1.112139366066548E+07; // 601430
ref_results[588] = 1.765382746723429E+07; // 601440
ref_results[589] = 5.786014348102611E+06; // 601450
ref_results[590] = 5.381094247959785E+06; // 601460
ref_results[591] = 1.314028622378168E+06; // 601470
ref_results[592] = 9.786690145176261E+05; // 601480
ref_results[593] = 7.811139011136548E+03; // 601490
ref_results[594] = 4.210028664896910E+06; // 601500
ref_results[595] = 1.640887640169713E+02; // 601510
ref_results[596] = 1.060852886105728E+06; // 611430
ref_results[597] = 1.048094554071354E+06; // 611440
ref_results[598] = 4.465240697067489E+06; // 611450
ref_results[599] = 3.812183545741203E+06; // 611460
ref_results[600] = 7.231191765392867E+06; // 611470
ref_results[601] = 5.264234778270277E+05; // 611480
ref_results[602] = 3.095255035322405E+06; // 611481
ref_results[603] = 4.554003147378460E+05; // 611490
ref_results[604] = 1.116740401872856E+04; // 611500
ref_results[605] = 6.084954851818767E+04; // 611510
ref_results[606] = 1.012969831666210E+02; // 611520
ref_results[607] = 5.663113579212182E+06; // 621440
ref_results[608] = 8.523300831785837E+06; // 621450
ref_results[609] = 1.033332375603325E+07; // 621460
ref_results[610] = 1.036465876694762E+07; // 621470
ref_results[611] = 1.159241614214866E+07; // 621480
ref_results[612] = 1.540626985301453E+07; // 621490
ref_results[613] = 1.446065353562163E+07; // 621500
ref_results[614] = 1.046130655711199E+07; // 621510
ref_results[615] = 7.882950694890379E+06; // 621520
ref_results[616] = 1.720342756596828E+05; // 621530
ref_results[617] = 1.376782172389411E+06; // 621540
ref_results[618] = 9.348204395182177E+02; // 621550
ref_results[619] = 3.584195171579114E+05; // 631450
ref_results[620] = 6.031934201803170E+05; // 631460
ref_results[621] = 2.027554582501147E+06; // 631470
ref_results[622] = 2.461807632969069E+06; // 631480
ref_results[623] = 2.714083018106689E+06; // 631490
ref_results[624] = 7.079494332711439E+06; // 631500
ref_results[625] = 4.027866584195945E+04; // 631501
ref_results[626] = 1.489193415190756E+06; // 631510
ref_results[627] = 2.649169861161307E+06; // 631520
ref_results[628] = 1.539244748062946E+04; // 631521
ref_results[629] = 1.528583218775103E+07; // 631530
ref_results[630] = 5.201597174013728E+05; // 631540
ref_results[631] = 5.540626267728681E+06; // 631550
ref_results[632] = 1.007165545854763E+05; // 631560
ref_results[633] = 7.319530524168462E+04; // 631570
ref_results[634] = 1.428140188336567E+06; // 641460
ref_results[635] = 8.951187342545051E+04; // 641470
ref_results[636] = 8.560483783655886E+06; // 641480
ref_results[637] = 1.466727703598735E+05; // 641490
ref_results[638] = 1.285913638530375E+07; // 641500
ref_results[639] = 7.806203598502806E+05; // 641510
ref_results[640] = 6.056102902738283E+06; // 641520
ref_results[641] = 9.775032952305861E+06; // 641530
ref_results[642] = 1.144483310288093E-06; // 641531
ref_results[643] = 1.450840355707166E+07; // 641540
ref_results[644] = 2.120667755567248E-04; // 641551
ref_results[645] = 4.455094778432631E+06; // 641550
ref_results[646] = 9.017003004780818E+06; // 641560
ref_results[647] = 1.035217045298266E+07; // 641570
ref_results[648] = 1.593134253269745E+06; // 641580
ref_results[649] = 4.654825844028295E+04; // 641590
ref_results[650] = 3.766580376819853E+06; // 641600
ref_results[651] = 1.113131529598612E+02; // 641610
ref_results[652] = 3.249596987445212E+02; // 641620
ref_results[653] = 1.833813564756518E+04; // 651520
ref_results[654] = 2.639693135508568E+05; // 651530
ref_results[655] = 8.044834990149341E+04; // 651540
ref_results[656] = 3.318774308748708E+04; // 651541
ref_results[657] = 1.581274272003102E+05; // 651550
ref_results[658] = 5.482301712308628E+05; // 651560
ref_results[659] = 4.878734980529343E+04; // 651561
ref_results[660] = 6.089642160353635E+06; // 651570
ref_results[661] = 7.013804370673899E+06; // 651580
ref_results[662] = 9.306509616466267E+06; // 651590
ref_results[663] = 1.071774049230500E+06; // 651600
ref_results[664] = 7.758014844154326E+05; // 651610
ref_results[665] = 4.046847516171868E+02; // 651620
ref_results[666] = 7.072404157254300E+06; // 661540
ref_results[667] = 7.425948611365666E+02; // 661550
ref_results[668] = 5.572727182035544E+06; // 661560
ref_results[669] = 2.516812751801339E+04; // 661570
ref_results[670] = 1.048127374561787E+06; // 661580
ref_results[671] = 6.802166180487511E+06; // 661590
ref_results[672] = 1.892152184222185E+07; // 661600
ref_results[673] = 1.654671706537748E+07; // 661610
ref_results[674] = 1.252648772342445E+07; // 661620
ref_results[675] = 3.905433044964550E+06; // 661630
ref_results[676] = 3.331729214628973E+06; // 661640
ref_results[677] = 1.324177245919371E+04; // 661650
ref_results[678] = 9.867446514860653E+01; // 661651
ref_results[679] = 2.741881932843618E+04; // 661660
ref_results[680] = 3.210758042242478E+03; // 671600
ref_results[681] = 1.668926142997685E+04; // 671601
ref_results[682] = 6.248218545560304E+03; // 671610
ref_results[683] = 1.844786588406836E+07; // 671630
ref_results[684] = 1.250655220019400E+00; // 671631
ref_results[685] = 1.597285107005989E+03; // 671640
ref_results[686] = 8.866713502724224E+02; // 671641
ref_results[687] = 1.964002465318973E+07; // 671650
ref_results[688] = 1.281203579131782E+05; // 671660
ref_results[689] = 2.706135480737326E+06; // 671661
ref_results[690] = 4.585787710564050E+04; // 681600
ref_results[691] = 7.397943681285669E+03; // 681610
ref_results[692] = 4.659729708315585E+06; // 681620
ref_results[693] = 3.685715270462538E+03; // 681630
ref_results[694] = 1.015580474061018E+07; // 681640
ref_results[695] = 3.316094709117628E+04; // 681650
ref_results[696] = 2.536743867877278E+07; // 681660
ref_results[697] = 1.450706956146211E+07; // 681670
ref_results[698] = 4.690370517548251E+00; // 681671
ref_results[699] = 4.169325172573524E+06; // 681680
ref_results[700] = 2.083741887167909E+04; // 681690
ref_results[701] = 5.331363840495342E+06; // 681700
ref_results[702] = 1.602885200862548E+04; // 681710
ref_results[703] = 1.989708246316370E+05; // 681720
ref_results[704] = 7.199286511781377E+04; // 691650
ref_results[705] = 5.488393816298725E+04; // 691660
ref_results[706] = 1.015649632002906E+06; // 691670
ref_results[707] = 6.507263340087025E+05; // 691680
ref_results[708] = 8.275794354253971E+06; // 691690
ref_results[709] = 2.155680449758796E+06; // 691700
ref_results[710] = 1.142749242866871E+07; // 691710
ref_results[711] = 3.963465238981420E+05; // 691720
ref_results[712] = 2.760680799266318E+04; // 691730
ref_results[713] = 2.438204242209778E+05; // 701660
ref_results[714] = 5.566495555902208E+01; // 701670
ref_results[715] = 3.088473914517249E+06; // 701680
ref_results[716] = 3.734358776943574E+06; // 701690
ref_results[717] = 1.393613153179206E+07; // 701700
ref_results[718] = 9.750446516810361E+06; // 701710
ref_results[719] = 2.069432863080999E+07; // 701720
ref_results[720] = 1.119259475198333E+07; // 701730
ref_results[721] = 6.814827180362870E+05; // 701740
ref_results[722] = 5.518790938676118E+05; // 701750
ref_results[723] = 4.401613284628876E-02; // 701751
ref_results[724] = 6.368129066885507E+06; // 701760
ref_results[725] = 6.223537771789858E+03; // 701770
ref_results[726] = 7.688996032478387E+04; // 711690
ref_results[727] = 2.540691634057098E+05; // 711700
ref_results[728] = 1.070856809949027E+06; // 711710
ref_results[729] = 7.713886727574876E+05; // 711720
ref_results[730] = 1.527198907054138E+06; // 711730
ref_results[731] = 7.638154002882630E+06; // 711740
ref_results[732] = 1.006047607352352E+06; // 711741
ref_results[733] = 1.535340479139833E+07; // 711750
ref_results[734] = 3.673406098106376E+06; // 711760
ref_results[735] = 2.630592240765884E+02; // 711761
ref_results[736] = 1.080437696065288E+06; // 711770
ref_results[737] = 6.252790411922603E+06; // 711771
ref_results[738] = 5.801917236045992E+04; // 721700
ref_results[739] = 4.943798009987456E+04; // 721710
ref_results[740] = 2.358514330659231E+05; // 721720
ref_results[741] = 2.270599977181448E+04; // 721730
ref_results[742] = 9.578521038646982E+05; // 721740
ref_results[743] = 2.317726328663180E+06; // 721750
ref_results[744] = 4.252157975847110E+06; // 721760
ref_results[745] = 2.107397144278390E+07; // 721770
ref_results[746] = 7.402791324517332E+06; // 721780
ref_results[747] = 7.944213933487889E-01; // 721781
ref_results[748] = 1.013196302432956E+07; // 721790
ref_results[749] = 4.140026974482677E+00; // 721791
ref_results[750] = 1.262828718818250E+07; // 721800
ref_results[751] = 8.590855633301217E+03; // 721801
ref_results[752] = 3.428994071377678E+06; // 721810
ref_results[753] = 7.575771401548178E+06; // 721820
ref_results[754] = 2.357090623850169E+05; // 731770
ref_results[755] = 4.441776610542773E+02; // 731780
ref_results[756] = 4.033008183226145E+06; // 731790
ref_results[757] = 1.905575807731473E+06; // 731801
ref_results[758] = 2.439062029807037E+04; // 731800
ref_results[759] = 7.968222866386762E+06; // 731810
ref_results[760] = 9.066194857836653E+06; // 731820
ref_results[761] = 2.725006134568325E-01; // 731821
ref_results[762] = 3.114393158728285E+05; // 731830
ref_results[763] = 1.065366382598848E+06; // 741780
ref_results[764] = 1.607541316020390E+06; // 741800
ref_results[765] = 5.558900962559761E+06; // 741810
ref_results[766] = 1.863362017105828E+07; // 741820
ref_results[767] = 4.863530338506226E+00; // 741831
ref_results[768] = 1.600567149021687E+07; // 741830
ref_results[769] = 4.020173052760905E+06; // 741840
ref_results[770] = 7.206516152109581E+06; // 741850
ref_results[771] = 4.554453524909538E+01; // 741851
ref_results[772] = 5.963855390835052E+06; // 741860
ref_results[773] = 1.294982151992955E+04; // 741870
ref_results[774] = 3.934097439992628E+06; // 741880
ref_results[775] = 5.740922847739409E+02; // 741890
ref_results[776] = 1.016146960232205E+04; // 751810
ref_results[777] = 4.050872376501252E+05; // 751820
ref_results[778] = 7.815650467247036E+03; // 751821
ref_results[779] = 8.040747414334426E+06; // 751830
ref_results[780] = 1.735478503900295E+06; // 751840
ref_results[781] = 5.159930543838109E+06; // 751841
ref_results[782] = 1.352952579765357E+07; // 751850
ref_results[783] = 4.337548494177986E+05; // 751860
ref_results[784] = 7.907435079405900E+06; // 751861
ref_results[785] = 6.342513243655077E+06; // 751870
ref_results[786] = 1.635349557625898E+05; // 751880
ref_results[787] = 1.335993402527944E+03; // 751881
ref_results[788] = 1.700699325419843E+05; // 751890
ref_results[789] = 7.913626297149192E+04; // 761820
ref_results[790] = 4.008686570107237E+04; // 761830
ref_results[791] = 2.739927719901982E+06; // 761840
ref_results[792] = 6.149542221393529E+06; // 761850
ref_results[793] = 1.159698290325412E+07; // 761860
ref_results[794] = 1.661879167452564E+06; // 761870
ref_results[795] = 2.845562745683289E+07; // 761880
ref_results[796] = 2.959818741324026E+07; // 761890
ref_results[797] = 3.545038067133022E+04; // 761891
ref_results[798] = 1.156986247036022E+07; // 761900
ref_results[799] = 7.229492022034129E+02; // 761901
ref_results[800] = 2.292048718911622E+06; // 761910
ref_results[801] = 5.929141005384800E+04; // 761911
ref_results[802] = 7.115778255641742E+06; // 761920
ref_results[803] = 9.523901545934592E+04; // 761930
ref_results[804] = 6.220782232328848E+05; // 761940
ref_results[805] = 5.839813848934942E+04; // 771850
ref_results[806] = 3.140953131056991E+03; // 771860
ref_results[807] = 2.347987604206391E+05; // 771880
ref_results[808] = 1.715378416918096E+06; // 771890
ref_results[809] = 7.209619367604453E-03; // 771891
ref_results[810] = 5.974135523167984E+05; // 771900
ref_results[811] = 1.924386759384976E+07; // 771910
ref_results[812] = 1.225667349908666E+01; // 771911
ref_results[813] = 6.293877955330984E+06; // 771920
ref_results[814] = 9.155882233999391E+01; // 771921
ref_results[815] = 1.392221187005098E+07; // 771930
ref_results[816] = 7.068937499082908E+05; // 771931
ref_results[817] = 4.160107313444368E+04; // 771940
ref_results[818] = 3.492336138940083E-04; // 771941
ref_results[819] = 7.354430445181218E+01; // 771960
ref_results[820] = 2.708089079643584E+03; // 771961
ref_results[821] = 1.232017406626239E+05; // 781880
ref_results[822] = 5.519777623263704E+03; // 781890
ref_results[823] = 3.260270790192564E+06; // 781900
ref_results[824] = 3.847126302565158E+04; // 781910
ref_results[825] = 1.174359905868790E+07; // 781920
ref_results[826] = 1.893888187623687E+07; // 781930
ref_results[827] = 4.855114172127435E+05; // 781931
ref_results[828] = 8.260844207634751E+06; // 781940
ref_results[829] = 1.328550818992616E+07; // 781950
ref_results[830] = 4.332136584936226E+05; // 781951
ref_results[831] = 1.549270578464062E+07; // 781960
ref_results[832] = 1.467864443886529E+05; // 781970
ref_results[833] = 8.005639315322470E+03; // 781971
ref_results[834] = 2.306961361089983E+06; // 781980
ref_results[835] = 4.466046164534268E+03; // 781990
ref_results[836] = 1.620676551363663E+01; // 781991
ref_results[837] = 1.010975114986380E+04; // 782000
ref_results[838] = 5.134397070163680E+04; // 791930
ref_results[839] = 1.956139233416652E+04; // 791940
ref_results[840] = 1.792750565138739E+07; // 791950
ref_results[841] = 2.625941388499913E+01; // 791951
ref_results[842] = 2.542185012599626E+04; // 791960
ref_results[843] = 2.964682361761466E+07; // 791970
ref_results[844] = 3.246964442813968E+05; // 791980
ref_results[845] = 4.740080866136447E+04; // 791981
ref_results[846] = 1.012049503298947E+06; // 791990
ref_results[847] = 2.508330260507861E-04; // 791991
ref_results[848] = 4.264490945532327E+03; // 792000
ref_results[849] = 4.167766491075534E+04; // 792001
ref_results[850] = 9.155332690539011E+03; // 801930
ref_results[851] = 4.167295819967633E+03; // 801931
ref_results[852] = 5.356606339374883E+06; // 801940
ref_results[853] = 6.249508386199307E+04; // 801950
ref_results[854] = 1.851808269071979E+05; // 801951
ref_results[855] = 7.650276824898665E+06; // 801960
ref_results[856] = 3.643605169106049E+05; // 801970
ref_results[857] = 2.517937744584302E+04; // 801971
ref_results[858] = 9.441931377939101E+06; // 801980
ref_results[859] = 3.559820322426069E+07; // 801990
ref_results[860] = 3.189799794647641E+03; // 801991
ref_results[861] = 1.945908087170127E+07; // 802000
ref_results[862] = 7.787645355357916E+06; // 802010
ref_results[863] = 4.572749313271461E+06; // 802020
ref_results[864] = 4.429472204173029E+06; // 802030
ref_results[865] = 2.929716358275380E+06; // 802040
ref_results[866] = 1.879801527089189E+02; // 802050
ref_results[867] = 2.766198074448952E+02; // 802060
ref_results[868] = 7.902049597413602E+04; // 812000
ref_results[869] = 3.578226271940521E+04; // 812010
ref_results[870] = 5.103882449757493E+05; // 812020
ref_results[871] = 1.015336785741436E+07; // 812030
ref_results[872] = 5.609225198355032E+06; // 812040
ref_results[873] = 4.464781338026653E+06; // 812050
ref_results[874] = 4.773877611931060E+02; // 812060
ref_results[875] = 6.438972671474171E+02; // 812070
ref_results[876] = 3.198733432551183E+04; // 822000
ref_results[877] = 6.289482628353949E+05; // 822020
ref_results[878] = 1.086283062264005E+05; // 822030
ref_results[879] = 5.340037372591742E+06; // 822040
ref_results[880] = 1.144722539023373E+07; // 822050
ref_results[881] = 4.317196914260581E-03; // 822051
ref_results[882] = 2.622087856802836E+07; // 822060
ref_results[883] = 3.077295847017886E+07; // 822070
ref_results[884] = 4.652647579256721E-01; // 822071
ref_results[885] = 7.496790440680638E+06; // 822080
ref_results[886] = 1.386036917845663E+04; // 822090
ref_results[887] = 3.923470833539073E+06; // 822100
ref_results[888] = 4.143196199857648E+05; // 832050
ref_results[889] = 9.777696975139746E+05; // 832060
ref_results[890] = 1.353006600376670E+07; // 832070
ref_results[891] = 3.912844793013468E+05; // 832080
ref_results[892] = 1.426267709593347E+07; // 832090
ref_results[893] = 8.417192995848582E+03; // 832100
ref_results[894] = 3.928790964304615E+06; // 832101
ref_results[895] = 1.461739564062868E+02; // 832110
ref_results[896] = 3.858106580182406E+05; // 842060
ref_results[897] = 2.837363520532791E+04; // 842070
ref_results[898] = 3.204101622179123E+06; // 842080
ref_results[899] = 4.566412262162268E+05; // 842090
ref_results[900] = 2.321191560744043E+06; // 842100
ref_results[901] = 5.496977713495333E-01; // 842110
ref_results[902] = 1.971645619440007E+01; // 842111
ref_results[903] = 8.588786853991423E+06; // 20030
ref_results[904] = 4.143678057392412E+08; // 20040
ref_results[905] = 7.296790647746213E+05; // 30060
ref_results[906] = 3.372328340150555E+06; // 30070
ref_results[907] = 2.951864531629399E+06; // 40070
ref_results[908] = 3.209420311339822E+06; // 60120
ref_results[909] = 4.195850010166936E+02; // 802060
ref_results[910] = 9.057803296951469E+06; // 812030
ref_results[911] = 8.515768331825145E+06; // 812050
ref_results[912] = 3.433436529814178E+02; // 812060
ref_results[913] = 1.443875312670108E+03; // 812070
ref_results[914] = 5.572787023761077E+02; // 812080
ref_results[915] = 1.207785704025423E+01; // 812090
ref_results[916] = 7.401770221803544E+01; // 812100
ref_results[917] = 1.971618904896624E+05; // 822030
ref_results[918] = 3.054744451483499E+06; // 822040
ref_results[919] = 8.529544816808436E+05; // 822050
ref_results[920] = 1.268775788529484E+07; // 822060
ref_results[921] = 4.762777137215867E+07; // 822070
ref_results[922] = 9.482237495479034E-01; // 822071
ref_results[923] = 6.219663406732317E+07; // 822080
ref_results[924] = 8.117240406046742E+04; // 822090
ref_results[925] = 5.287344966415511E+07; // 822100
ref_results[926] = 8.020230931649658E+03; // 822110
ref_results[927] = 1.515124338508110E+05; // 822120
ref_results[928] = 2.035251212482661E+03; // 822140
ref_results[929] = 5.727797610648104E+04; // 832060
ref_results[930] = 1.405430791679626E+07; // 832070
ref_results[931] = 1.309670026474042E+06; // 832080
ref_results[932] = 4.048871023665947E+07; // 832090
ref_results[933] = 5.529096529019441E+05; // 832101
ref_results[934] = 5.948239129641956E+05; // 832100
ref_results[935] = 6.391001063408503E+02; // 832110
ref_results[936] = 2.385045746943997E+04; // 832120
ref_results[937] = 1.246253803841395E+03; // 832121
ref_results[938] = 1.051942685872466E+04; // 832130
ref_results[939] = 3.035179001966129E+03; // 832140
ref_results[940] = 2.454036085329699E+04; // 842070
ref_results[941] = 9.338120106605941E+05; // 842080
ref_results[942] = 6.996581490678458E+06; // 842090
ref_results[943] = 7.563855116260888E+06; // 842100
ref_results[944] = 1.668882332732202E+01; // 842111
ref_results[945] = 6.118301221965056E-01; // 842110
ref_results[946] = 2.096261574107562E-06; // 842120
ref_results[947] = 2.354758164006158E-05; // 842130
ref_results[948] = 1.121373906557951E-03; // 842140
ref_results[949] = 4.861805089178331E-03; // 842150
ref_results[950] = 4.012913810056704E-01; // 842160
ref_results[951] = 8.102690480430537E+01; // 842180
ref_results[952] = 5.754830019994851E-04; // 852160
ref_results[953] = 1.110990128915731E-01; // 852170
ref_results[954] = 1.887394093556162E+00; // 852180
ref_results[955] = 8.429070053835037E-05; // 862160
ref_results[956] = 2.973222118166666E-04; // 862170
ref_results[957] = 1.468851386987769E-01; // 862180
ref_results[958] = 9.806203226738395E+00; // 862190
ref_results[959] = 1.096739517611707E+02; // 862200
ref_results[960] = 1.940411770597238E+04; // 862220
ref_results[961] = 3.995335934112452E+01; // 872200
ref_results[962] = 8.851955091356489E+02; // 872210
ref_results[963] = 3.306378707977032E+02; // 872220
ref_results[964] = 1.472330033232309E+03; // 872230
ref_results[965] = 1.789760943517981E-02; // 882200
ref_results[966] = 1.233878966605809E+02; // 882220
ref_results[967] = 1.347307733006760E+06; // 882230
ref_results[968] = 4.344837666760843E+05; // 882240
ref_results[969] = 1.599089309071260E+06; // 882250
ref_results[970] = 8.668659945968024E+06; // 882260
ref_results[971] = 1.675353863913398E+03; // 882270
ref_results[972] = 3.949746710907715E+06; // 882280
ref_results[973] = 3.636003013015102E+03; // 892240
ref_results[974] = 1.773735671225996E+06; // 892250
ref_results[975] = 9.417611560523837E+04; // 892260
ref_results[976] = 9.254461669800164E+06; // 892270
ref_results[977] = 9.981608274269274E+03; // 892280
ref_results[978] = 4.613021887623725E+03; // 902260
ref_results[979] = 1.559844688851604E+05; // 902270
ref_results[980] = 1.133497705243561E+07; // 902280
ref_results[981] = 7.891589271545483E+06; // 902290
ref_results[982] = 4.870970700949871E+06; // 902300
ref_results[983] = 8.185538221431017E+04; // 902310
ref_results[984] = 7.761522996808404E+06; // 902320
ref_results[985] = 1.237703492502644E+03; // 902330
ref_results[986] = 1.696573853326893E+06; // 902340
ref_results[987] = 8.518193736774944E+04; // 912280
ref_results[988] = 2.345594227049491E+04; // 912290
ref_results[989] = 1.263669953841104E+06; // 912300
ref_results[990] = 1.729691633672176E+07; // 912310
ref_results[991] = 1.116807169933155E+05; // 912320
ref_results[992] = 4.769060114601193E+06; // 912330
ref_results[993] = 2.898429350245291E+01; // 912341
ref_results[994] = 2.095547055679891E+04; // 912340
ref_results[995] = 3.159492870586063E+02; // 912350
ref_results[996] = 1.550635952029870E+06; // 922300
ref_results[997] = 4.424581984069386E+05; // 922310
ref_results[998] = 1.016022875029946E+07; // 922320
ref_results[999] = 1.500102045024391E+07; // 922330
ref_results[1000] = 1.579550765137348E+07; // 922340
ref_results[1001] = 6.122279004874331E+06; // 922350
ref_results[1002] = 1.225606900839339E+07; // 922360
ref_results[1003] = 1.425554422386851E+05; // 922370
ref_results[1004] = 4.336697124495693E+06; // 922380
ref_results[1005] = 8.698664879403887E+01; // 922390
ref_results[1006] = 3.974574974195443E+04; // 922400
ref_results[1007] = 3.366018916739084E+02; // 922410
ref_results[1008] = 1.172744865354952E+05; // 932340
ref_results[1009] = 2.110362219870697E+06; // 932350
ref_results[1010] = 1.086835377339592E+05; // 932361
ref_results[1011] = 7.296024951013723E+06; // 932360
ref_results[1012] = 8.625880097172398E+06; // 932370
ref_results[1013] = 2.500893905258364E+05; // 932380
ref_results[1014] = 8.610423758067351E+04; // 932390
ref_results[1015] = 2.764171074862551E+02; // 932401
ref_results[1016] = 3.616111163664668E+03; // 932400
ref_results[1017] = 1.954274994665114E+03; // 932410
ref_results[1018] = 1.071836381720383E+07; // 942360
ref_results[1019] = 1.021709116304270E-01; // 942371
ref_results[1020] = 5.887614146548197E+06; // 942370
ref_results[1021] = 1.339966631886023E+07; // 942380
ref_results[1022] = 5.668849093812034E+06; // 942390
ref_results[1023] = 2.246481756310702E+07; // 942400
ref_results[1024] = 1.614852290394063E+07; // 942410
ref_results[1025] = 4.383007976705490E+06; // 942420
ref_results[1026] = 1.907760386645204E+04; // 942430
ref_results[1027] = 6.088579362874288E+06; // 942440
ref_results[1028] = 5.039262491200360E+04; // 942450
ref_results[1029] = 8.040652355555419E+05; // 942460
ref_results[1030] = 1.625916243260987E+05; // 942470
ref_results[1031] = 8.324742681582555E+03; // 952390
ref_results[1032] = 2.037954542227524E+05; // 952400
ref_results[1033] = 3.473897559461388E+06; // 952410
ref_results[1034] = 3.368705834871975E+06; // 952421
ref_results[1035] = 2.800133786594856E+04; // 952420
ref_results[1036] = 1.256851997556150E+07; // 952430
ref_results[1037] = 8.541498233957604E+02; // 952441
ref_results[1038] = 8.957714564790089E+03; // 952440
ref_results[1039] = 1.821488434574594E+04; // 952450
ref_results[1040] = 3.089610856606788E+03; // 952460
ref_results[1041] = 3.054121282249468E+03; // 952470
ref_results[1042] = 2.985827431151529E+06; // 962400
ref_results[1043] = 1.742327691532891E+06; // 962410
ref_results[1044] = 5.541249098935332E+06; // 962420
ref_results[1045] = 8.444968970489647E+06; // 962430
ref_results[1046] = 1.021933993931952E+07; // 962440
ref_results[1047] = 2.299791825870190E+07; // 962450
ref_results[1048] = 1.520886626102866E+07; // 962460
ref_results[1049] = 1.733257245377608E+07; // 962470
ref_results[1050] = 7.250357902845260E+06; // 962480
ref_results[1051] = 2.120097061735339E+03; // 962490
ref_results[1052] = 1.248017263669865E+06; // 962500
ref_results[1053] = 1.182059871230001E+02; // 962510
ref_results[1054] = 4.591790485765725E+05; // 972450
ref_results[1055] = 1.642152798085508E+05; // 972460
ref_results[1056] = 3.287558458802395E+06; // 972470
ref_results[1057] = 4.809960260633479E+06; // 972480
ref_results[1058] = 1.227683088988154E+05; // 972481
ref_results[1059] = 8.591015617621215E+06; // 972490
ref_results[1060] = 9.815867606932750E+03; // 972500
ref_results[1061] = 2.318124480767710E+03; // 972510
ref_results[1062] = 3.650001133116711E+04; // 982460
ref_results[1063] = 1.024018435754222E+07; // 982480
ref_results[1064] = 8.423990300544886E+06; // 982490
ref_results[1065] = 1.035444604434527E+07; // 982500
ref_results[1066] = 1.410572033711928E+07; // 982510
ref_results[1067] = 6.208576564225041E+06; // 982520
ref_results[1068] = 2.559507714376036E+05; // 982530
ref_results[1069] = 4.416548808652273E+06; // 982540
ref_results[1070] = 5.438165706251151E+03; // 982550
ref_results[1071] = 1.147821996190271E+05; // 992510
ref_results[1072] = 4.376987916032589E+06; // 992520
ref_results[1073] = 1.860317383330424E+06; // 992530
ref_results[1074] = 1.439124822444749E+05; // 992541
ref_results[1075] = 5.680298950278858E+06; // 992540
ref_results[1076] = 6.690764286147898E+06; // 992550
ref_results[1077] = 6.709492044976546E+06; // 10030
ref_results[1078] = 3.431447847943635E+06; // 20030
ref_results[1079] = 6.179294887452741E+06; // 20040
ref_results[1080] = 9.322831321320976E-01; // 260650
ref_results[1081] = 1.553508753227390E+00; // 270650
ref_results[1082] = 1.831670236353411E+04; // 280650
ref_results[1083] = 1.286276025325180E+07; // 290650
ref_results[1084] = 2.191693893602218E-03; // 240660
ref_results[1085] = 2.229785482580566E-02; // 250660
ref_results[1086] = 3.804948393306969E-01; // 260660
ref_results[1087] = 5.280769323660193E-01; // 270660
ref_results[1088] = 5.700793190767531E+05; // 280660
ref_results[1089] = 1.268847786841488E+03; // 290660
ref_results[1090] = 4.222701072121759E+07; // 300660
ref_results[1091] = 8.730753333362186E+04; // 310660
ref_results[1092] = 1.050817677731152E+04; // 320660
ref_results[1093] = 5.710008454539538E-02; // 240670
ref_results[1094] = 6.363603997421081E-02; // 250670
ref_results[1095] = 7.921789552474365E-01; // 260670
ref_results[1096] = 1.039800854950269E+00; // 270670
ref_results[1097] = 7.837048407487657E+01; // 280670
ref_results[1098] = 8.868251411332905E+05; // 290670
ref_results[1099] = 2.845403935473293E+07; // 300670
ref_results[1100] = 1.104808580490360E+05; // 310670
ref_results[1101] = 3.043541460670000E+02; // 320670
ref_results[1102] = 2.572711016417280E-02; // 250680
ref_results[1103] = 4.283172108825958E-01; // 260680
ref_results[1104] = 4.642480767242654E-01; // 270680
ref_results[1105] = 7.416432170459041E+01; // 280680
ref_results[1106] = 1.218479720192228E+02; // 290680
ref_results[1107] = 1.371007756849662E+02; // 290681
ref_results[1108] = 3.510985077961295E+07; // 300680
ref_results[1109] = 6.139571706483086E+03; // 310680
ref_results[1110] = 7.071952496081002E+06; // 320680
ref_results[1111] = 1.879749811525483E-02; // 250690
ref_results[1112] = 3.004034163017151E-01; // 260690
ref_results[1113] = 7.767336256369041E-01; // 270690
ref_results[1114] = 4.655955298756778E+01; // 280690
ref_results[1115] = 7.060060933630883E+02; // 290690
ref_results[1116] = 1.575906271051263E+04; // 300690
ref_results[1117] = 1.128879903110551E+04; // 300691
ref_results[1118] = 4.332535198656286E+07; // 310690
ref_results[1119] = 3.150083762275006E+05; // 320690
ref_results[1120] = 1.107845854156258E+03; // 330690
ref_results[1121] = 3.461007444584071E-02; // 260700
ref_results[1122] = 1.387345967241953E-01; // 270700
ref_results[1123] = 1.432694850132523E+01; // 280700
ref_results[1124] = 1.075798006694932E+02; // 290700
ref_results[1125] = 1.063416195575886E+02; // 290701
ref_results[1126] = 2.687179430807866E+07; // 300700
ref_results[1127] = 3.493776526924302E+01; // 310700
ref_results[1128] = 7.178300596384699E+06; // 320700
ref_results[1129] = 1.432185109085921E-01; // 260710
ref_results[1130] = 1.702348068901751E-01; // 270710
ref_results[1131] = 9.149837708570040E+00; // 280710
ref_results[1132] = 8.187592742244286E+01; // 290710
ref_results[1133] = 7.221093627914912E+02; // 300710
ref_results[1134] = 7.469317574165335E+03; // 300711
ref_results[1135] = 4.426027833323480E+07; // 310710
ref_results[1136] = 2.316063263616370E+06; // 320710
ref_results[1137] = 1.391085127773065E-02; // 320711
ref_results[1138] = 9.821563965120862E+04; // 330710
ref_results[1139] = 1.118122403933909E-01; // 260720
ref_results[1140] = 1.575735139537335E-01; // 270720
ref_results[1141] = 5.696322703171755E+00; // 280720
ref_results[1142] = 2.764005725592607E+01; // 290720
ref_results[1143] = 8.446822757724086E+05; // 300720
ref_results[1144] = 2.681670715708716E+05; // 310720
ref_results[1145] = 3.703009935244582E+07; // 320720
ref_results[1146] = 7.372889716674169E+04; // 330720
ref_results[1147] = 5.498809184763074E+05; // 340720
ref_results[1148] = 5.666120841359359E-02; // 270730
ref_results[1149] = 1.786984849512312E+00; // 280730
ref_results[1150] = 9.681116831694647E+00; // 290730
ref_results[1151] = 8.213787167857119E+01; // 300730
ref_results[1152] = 6.966882277220431E+04; // 310730
ref_results[1153] = 4.462840531863242E+07; // 320730
ref_results[1154] = 5.905193490390980E-01; // 320731
ref_results[1155] = 1.530656174956924E+07; // 330730
ref_results[1156] = 6.058808820820614E+04; // 340730
ref_results[1157] = 3.056788397618601E+03; // 340731
ref_results[1158] = 3.713797774902113E-02; // 270740
ref_results[1159] = 9.135377818140726E-01; // 280740
ref_results[1160] = 3.230999681032954E+00; // 290740
ref_results[1161] = 2.469258468928940E+02; // 300740
ref_results[1162] = 1.592169324543790E+03; // 310740
ref_results[1163] = 4.880282106759489E-01; // 310741
ref_results[1164] = 2.532951246377122E+07; // 320740
ref_results[1165] = 5.089965304163633E+05; // 330740
ref_results[1166] = 2.229964305842529E+06; // 340740
ref_results[1167] = 3.893412200296218E-03; // 270750
ref_results[1168] = 1.502014861352976E-01; // 280750
ref_results[1169] = 1.459587727721781E+00; // 290750
ref_results[1170] = 1.339833706200441E+01; // 300750
ref_results[1171] = 2.229366069659619E+02; // 310750
ref_results[1172] = 1.583835022369349E+04; // 320750
ref_results[1173] = 6.330208240957259E+01; // 320751
ref_results[1174] = 3.707626842953653E+07; // 330750
ref_results[1175] = 2.545621900682531E-02; // 330751
ref_results[1176] = 5.716965594914326E+06; // 340750
ref_results[1177] = 2.041947942662102E+03; // 350750
ref_results[1178] = 2.516291892340857E-01; // 280760
ref_results[1179] = 1.030326231472438E+00; // 290760
ref_results[1180] = 1.058736996941525E+01; // 300760
ref_results[1181] = 6.379675610886413E+01; // 310760
ref_results[1182] = 1.737998187944391E+07; // 320760
ref_results[1183] = 4.194738015282396E+04; // 330760
ref_results[1184] = 1.116583520205641E+07; // 340760
ref_results[1185] = 1.766077937731221E-01; // 280770
ref_results[1186] = 7.649204505312216E-01; // 290770
ref_results[1187] = 3.356020844311722E+00; // 300770
ref_results[1188] = 3.422851949306839E+01; // 310770
ref_results[1189] = 1.478044228382126E+05; // 320770
ref_results[1190] = 6.860854611389182E+01; // 320771
ref_results[1191] = 8.039451325831256E+05; // 330770
ref_results[1192] = 5.684531099040362E+07; // 340770
ref_results[1193] = 2.387136630473369E+01; // 340771
ref_results[1194] = 5.464253851161199E+05; // 350770
ref_results[1195] = 2.989585951715696E+02; // 350771
ref_results[1196] = 5.704019785664071E+03; // 360770
ref_results[1197] = 4.250592444689327E-02; // 280780
ref_results[1198] = 1.705160249682623E-01; // 290780
ref_results[1199] = 8.397033273876430E-01; // 300780
ref_results[1200] = 9.761999219965674E+00; // 310780
ref_results[1201] = 1.487480563733323E+04; // 320780
ref_results[1202] = 1.831942199645775E+04; // 330780
ref_results[1203] = 2.859701087517224E+07; // 340780
ref_results[1204] = 4.810249886454101E+02; // 350780
ref_results[1205] = 8.157798460659395E+06; // 360780
ref_results[1206] = 2.239409072460908E-02; // 290790
ref_results[1207] = 1.311908076381827E+00; // 300790
ref_results[1208] = 7.488486027931897E+00; // 310790
ref_results[1209] = 7.197209111834789E+01; // 320790
ref_results[1210] = 1.574724704721851E+01; // 320791
ref_results[1211] = 2.507031986651944E+03; // 330790
ref_results[1212] = 3.491093659037486E+07; // 340790
ref_results[1213] = 1.257883274725672E+03; // 340791
ref_results[1214] = 2.526418839597067E+07; // 350790
ref_results[1215] = 2.798172440592223E+00; // 350791
ref_results[1216] = 3.616490152916891E+05; // 360790
ref_results[1217] = 4.464107825754486E+01; // 360791
ref_results[1218] = 1.192092192925335E+03; // 370790
ref_results[1219] = 3.495365627177212E-02; // 290800
ref_results[1220] = 7.887356466911659E-01; // 300800
ref_results[1221] = 4.475778220387626E+00; // 310800
ref_results[1222] = 9.430380437980716E+01; // 320800
ref_results[1223] = 6.925740696630436E+01; // 330800
ref_results[1224] = 3.085276435556280E+07; // 340800
ref_results[1225] = 1.339462042176046E+03; // 350800
ref_results[1226] = 8.718671458899180E+02; // 350801
ref_results[1227] = 1.249697111904072E+07; // 360800
ref_results[1228] = 2.540584345073704E-01; // 300810
ref_results[1229] = 2.953108289699213E+00; // 310810
ref_results[1230] = 2.066047364361639E+01; // 320810
ref_results[1231] = 9.895390636338613E+00; // 320811
ref_results[1232] = 1.603758497424101E+02; // 330810
ref_results[1233] = 6.976230009725364E+03; // 340810
ref_results[1234] = 3.057225689047909E+03; // 340811
ref_results[1235] = 4.070765897718511E+07; // 350810
ref_results[1236] = 9.068253939397063E+06; // 360810
ref_results[1237] = 2.198037294935750E+00; // 360811
ref_results[1238] = 6.315983389267190E+03; // 370810
ref_results[1239] = 9.120582813205043E-02; // 300820
ref_results[1240] = 1.597607852812307E+00; // 310820
ref_results[1241] = 1.663392172727562E+01; // 320820
ref_results[1242] = 8.300804963805558E+01; // 330820
ref_results[1243] = 1.472955566187536E+01; // 330821
ref_results[1244] = 3.283115896149012E+07; // 340820
ref_results[1245] = 2.765768774803784E+05; // 350820
ref_results[1246] = 3.875143660739021E+02; // 350821
ref_results[1247] = 1.841678347805640E+07; // 360820
ref_results[1248] = 5.565010170274710E-02; // 300830
ref_results[1249] = 6.752228470718022E-01; // 310830
ref_results[1250] = 4.662258391145417E+00; // 320830
ref_results[1251] = 4.807645890025060E+01; // 330830
ref_results[1252] = 5.088427184498753E+03; // 340830
ref_results[1253] = 5.474215186262344E+01; // 340831
ref_results[1254] = 4.800607103218600E+04; // 350830
ref_results[1255] = 4.553941364885248E+07; // 360830
ref_results[1256] = 4.212703100893944E+04; // 360831
ref_results[1257] = 8.541544992769653E+06; // 370830
ref_results[1258] = 1.602052837390080E+05; // 380830
ref_results[1259] = 5.230427170750241E-03; // 310840
ref_results[1260] = 8.848301016008454E-01; // 320840
ref_results[1261] = 3.513060321901114E+00; // 330840
ref_results[1262] = 6.010778305295739E+02; // 340840
ref_results[1263] = 8.888596621321365E+03; // 350840
ref_results[1264] = 1.820246753124058E+02; // 350841
ref_results[1265] = 3.719281026921576E+07; // 360840
ref_results[1266] = 2.000386143417908E+06; // 370840
ref_results[1267] = 1.791002580042843E+06; // 380840
ref_results[1268] = 3.701897989047499E-02; // 310850
ref_results[1269] = 4.712448817368123E-01; // 320850
ref_results[1270] = 2.740428227795447E+00; // 330850
ref_results[1271] = 7.587312975901335E+01; // 340850
ref_results[1272] = 5.206504832728256E+02; // 350850
ref_results[1273] = 1.262465021338449E+07; // 360850
ref_results[1274] = 6.480063338024482E+04; // 360851
ref_results[1275] = 2.532305130677042E+07; // 370850
ref_results[1276] = 2.900739545560946E+06; // 380850
ref_results[1277] = 2.047676021994228E+03; // 380851
ref_results[1278] = 2.008468186681051E+03; // 390850
ref_results[1279] = 2.231316759114247E-02; // 310860
ref_results[1280] = 1.177630206426511E-01; // 320860
ref_results[1281] = 2.022912749434735E+00; // 330860
ref_results[1282] = 4.174487691152659E+01; // 340860
ref_results[1283] = 2.002992531017423E+02; // 350860
ref_results[1284] = 2.511896366772942E+07; // 360860
ref_results[1285] = 1.939431476744920E+06; // 370860
ref_results[1286] = 1.949772238442500E+01; // 370861
ref_results[1287] = 1.245076641449614E+07; // 380860
ref_results[1288] = 3.036672700427097E-02; // 320870
ref_results[1289] = 8.003315703981558E-01; // 330870
ref_results[1290] = 1.146670714925529E+01; // 340870
ref_results[1291] = 1.958804651620660E+02; // 350870
ref_results[1292] = 1.956000969113556E+04; // 360870
ref_results[1293] = 2.626989235872453E+07; // 370870
ref_results[1294] = 2.227684703938565E+07; // 380870
ref_results[1295] = 4.035574648357149E+03; // 380871
ref_results[1296] = 6.625149776317158E+05; // 390870
ref_results[1297] = 4.081468195888528E+04; // 390871
ref_results[1298] = 3.472422741357524E+03; // 400870
ref_results[1299] = 7.461160478694352E-02; // 320880
ref_results[1300] = 2.109898830103535E-01; // 330880
ref_results[1301] = 3.540825031733747E+00; // 340880
ref_results[1302] = 5.237782768661382E+01; // 350880
ref_results[1303] = 4.655565413219488E+04; // 360880
ref_results[1304] = 6.338994331519118E+03; // 370880
ref_results[1305] = 4.168653511238475E+07; // 380880
ref_results[1306] = 4.197897202862713E+06; // 390880
ref_results[1307] = 2.775567610221431E+06; // 400880
ref_results[1308] = 4.823797761307878E-02; // 320890
ref_results[1309] = 8.907908654621180E-02; // 330890
ref_results[1310] = 9.535223137098631E-01; // 340890
ref_results[1311] = 1.212757276693322E+01; // 350890
ref_results[1312] = 7.156914180875951E+02; // 360890
ref_results[1313] = 4.362774644656191E+03; // 370890
ref_results[1314] = 1.753005765940947E+07; // 380890
ref_results[1315] = 3.613718776984143E+07; // 390890
ref_results[1316] = 3.531894934316979E+00; // 390891
ref_results[1317] = 7.874258407012072E+05; // 400890
ref_results[1318] = 3.269058965313116E+02; // 400891
ref_results[1319] = 8.438251308633493E+03; // 410890
ref_results[1320] = 4.213287699341539E-02; // 330900
ref_results[1321] = 3.613502737969584E-01; // 340900
ref_results[1322] = 6.388942444725497E+00; // 350900
ref_results[1323] = 1.114279182170365E+02; // 360900
ref_results[1324] = 6.958990805532792E+02; // 370900
ref_results[1325] = 1.832208890201563E+02; // 370901
ref_results[1326] = 3.779968437754683E+07; // 380900
ref_results[1327] = 3.331330900014642E+05; // 390900
ref_results[1328] = 2.674552766087459E+01; // 390901
ref_results[1329] = 1.829414144653142E+07; // 400900
ref_results[1330] = 7.465945382806523E-01; // 400901
ref_results[1331] = 3.854433466348088E+04; // 410900
ref_results[1332] = 1.445399201478900E+04; // 420900
ref_results[1333] = 1.100288205545174E-02; // 330910
ref_results[1334] = 4.274362653634978E-01; // 340910
ref_results[1335] = 9.094043706922985E-01; // 350910
ref_results[1336] = 2.205893816173508E+01; // 360910
ref_results[1337] = 1.734502284298697E+02; // 370910
ref_results[1338] = 1.165491974140947E+05; // 380910
ref_results[1339] = 1.630744575335809E+07; // 390910
ref_results[1340] = 9.387237297741111E+03; // 390911
ref_results[1341] = 1.463434051330545E+07; // 400910
ref_results[1342] = 1.481153686938553E+07; // 410910
ref_results[1343] = 3.599315156028179E+06; // 410911
ref_results[1344] = 1.049628734762927E+03; // 420910
ref_results[1345] = 8.460005756008996E-03; // 330920
ref_results[1346] = 7.216331712973290E-02; // 340920
ref_results[1347] = 3.517828509907215E-01; // 350920
ref_results[1348] = 5.125404707564653E+00; // 360920
ref_results[1349] = 1.643099731366576E+01; // 370920
ref_results[1350] = 4.925436957531448E+04; // 380920
ref_results[1351] = 7.895771514935645E+04; // 390920
ref_results[1352] = 4.432878694627146E+07; // 400920
ref_results[1353] = 5.184827133489052E+06; // 410920
ref_results[1354] = 4.445937051265115E+05; // 410921
ref_results[1355] = 8.181069550854664E+06; // 420920
ref_results[1356] = 4.535170610969327E-02; // 340930
ref_results[1357] = 1.290714111211941E-01; // 350930
ref_results[1358] = 2.847430681025799E+00; // 360930
ref_results[1359] = 1.977364572790985E+01; // 370930
ref_results[1360] = 2.218524535147956E+03; // 380930
ref_results[1361] = 2.148939105246548E+05; // 390930
ref_results[1362] = 6.713018534841240E-01; // 390931
ref_results[1363] = 4.180908046821879E+07; // 400930
ref_results[1364] = 6.021478674410908E+06; // 410930
ref_results[1365] = 1.708321671932582E+06; // 410931
ref_results[1366] = 1.393007956519301E+07; // 420930
ref_results[1367] = 2.281169224705709E+04; // 420931
ref_results[1368] = 9.564187035014009E+03; // 430930
ref_results[1369] = 4.822300249241447E-02; // 340940
ref_results[1370] = 1.011804586317432E-01; // 350940
ref_results[1371] = 4.161255027866809E-01; // 360940
ref_results[1372] = 6.363277078850714E+00; // 370940
ref_results[1373] = 2.696347070045020E+02; // 380940
ref_results[1374] = 4.202515487755516E+03; // 390940
ref_results[1375] = 2.882667819475151E+07; // 400940
ref_results[1376] = 3.053342616256306E+06; // 410940
ref_results[1377] = 1.104367617997600E+02; // 410941
ref_results[1378] = 6.296715598396057E+06; // 420940
ref_results[1379] = 4.208202310417284E-02; // 350950
ref_results[1380] = 9.629607119659615E-02; // 360950
ref_results[1381] = 7.777482238919972E-01; // 370950
ref_results[1382] = 6.421731254482499E+01; // 380950
ref_results[1383] = 1.715053069097444E+03; // 390950
ref_results[1384] = 1.276336260092785E+07; // 400950
ref_results[1385] = 9.893419369956674E+06; // 410950
ref_results[1386] = 3.048433040913685E+05; // 410951
ref_results[1387] = 2.272838613082731E+07; // 420950
ref_results[1388] = 1.009825391326028E+05; // 430950
ref_results[1389] = 2.503134615664243E+06; // 430951
ref_results[1390] = 7.090962893898069E+02; // 440950
ref_results[1391] = 4.707241579136014E-03; // 350960
ref_results[1392] = 1.071017731800491E-01; // 360960
ref_results[1393] = 4.900778598580252E-01; // 370960
ref_results[1394] = 3.768606714375456E+00; // 380960
ref_results[1395] = 1.892954668182234E+01; // 390960
ref_results[1396] = 1.037403036596258E+01; // 390961
ref_results[1397] = 3.155476757103350E+07; // 400960
ref_results[1398] = 4.185000966027319E+04; // 410960
ref_results[1399] = 1.199590383901839E+07; // 420960
ref_results[1400] = 4.065739250743141E+05; // 430960
ref_results[1401] = 3.604407493709006E+06; // 440960
ref_results[1402] = 1.160528942027248E-02; // 350970
ref_results[1403] = 6.210490264999214E-02; // 360970
ref_results[1404] = 3.515246378651096E-01; // 370970
ref_results[1405] = 9.721518670685553E-01; // 380970
ref_results[1406] = 1.153198736528776E+01; // 390970
ref_results[1407] = 1.461521664770995E+00; // 390971
ref_results[1408] = 2.716025645558315E+05; // 400970
ref_results[1409] = 2.338720938255659E+04; // 410970
ref_results[1410] = 2.067891624306199E+01; // 410971
ref_results[1411] = 3.407731937492601E+07; // 420970
ref_results[1412] = 9.409590497352481E+06; // 430970
ref_results[1413] = 1.310869520479465E+06; // 430971
ref_results[1414] = 2.134549277283174E+05; // 440970
ref_results[1415] = 4.772581966507415E-02; // 360980
ref_results[1416] = 1.481133650695045E-01; // 370980
ref_results[1417] = 1.536867243616022E+00; // 380980
ref_results[1418] = 1.863653178697815E+00; // 390980
ref_results[1419] = 7.770611093193390E-01; // 390981
ref_results[1420] = 1.206382320590842E+02; // 400980
ref_results[1421] = 1.536034998649701E+01; // 410980
ref_results[1422] = 4.271876188614540E+03; // 410981
ref_results[1423] = 4.858049350534482E+07; // 420980
ref_results[1424] = 7.897987014283439E+04; // 430980
ref_results[1425] = 6.371189957436796E+06; // 440980
ref_results[1426] = 7.416977006373335E-03; // 360990
ref_results[1427] = 3.610538790957918E-02; // 370990
ref_results[1428] = 3.408252849588354E-01; // 380990
ref_results[1429] = 2.355319356407492E+00; // 390990
ref_results[1430] = 4.674125459715826E+00; // 400990
ref_results[1431] = 4.607639117762122E+01; // 410990
ref_results[1432] = 8.385873352109049E+01; // 410991
ref_results[1433] = 1.115427026597488E+06; // 420990
ref_results[1434] = 4.307838589843259E+07; // 430990
ref_results[1435] = 1.192132707517153E+05; // 430991
ref_results[1436] = 1.794601380637091E+07; // 440990
ref_results[1437] = 8.087860300956864E+05; // 450990
ref_results[1438] = 3.738794122826891E+04; // 450991
ref_results[1439] = 1.106374534136179E+03; // 460990
ref_results[1440] = 3.185475695758820E-02; // 361000
ref_results[1441] = 9.190306274763446E-02; // 371000
ref_results[1442] = 6.720756839853544E-01; // 381000
ref_results[1443] = 3.215246007605326E+00; // 391000
ref_results[1444] = 3.582797978606466E+01; // 401000
ref_results[1445] = 8.624324159230866E+00; // 411000
ref_results[1446] = 3.625504702056456E+00; // 411001
ref_results[1447] = 4.722438202784740E+07; // 421000
ref_results[1448] = 2.207125561632794E-01; // 431000
ref_results[1449] = 1.135966367024428E+06; // 441000
ref_results[1450] = 4.510224506905408E-02; // 371010
ref_results[1451] = 1.457847560444573E-01; // 381010
ref_results[1452] = 8.348896185811212E-01; // 391010
ref_results[1453] = 4.827262772601327E+00; // 401010
ref_results[1454] = 2.083172505982396E+01; // 411010
ref_results[1455] = 2.886505655645431E+03; // 421010
ref_results[1456] = 3.984099706203260E+03; // 431010
ref_results[1457] = 3.803964626384011E+07; // 441010
ref_results[1458] = 7.258845367961863E+06; // 451010
ref_results[1459] = 3.474852105327854E+05; // 451011
ref_results[1460] = 4.145074271154661E+03; // 461010
ref_results[1461] = 1.105352118821173E-02; // 371020
ref_results[1462] = 4.753938244115746E-02; // 381020
ref_results[1463] = 4.652560836252523E-01; // 391020
ref_results[1464] = 7.533726373225781E+00; // 401020
ref_results[1465] = 4.439756415441625E+00; // 411020
ref_results[1466] = 4.560428983366744E+00; // 411021
ref_results[1467] = 3.113021867567888E+03; // 421020
ref_results[1468] = 2.727471762859174E+01; // 431020
ref_results[1469] = 3.712299636465576E+02; // 431021
ref_results[1470] = 4.396110376426134E+07; // 441020
ref_results[1471] = 3.544241724269170E+06; // 451020
ref_results[1472] = 7.446036499913446E+06; // 451021
ref_results[1473] = 1.725385165647633E+06; // 461020
ref_results[1474] = 8.799760215668802E-02; // 381030
ref_results[1475] = 5.693415340852017E-01; // 391030
ref_results[1476] = 3.863795249307059E+00; // 401030
ref_results[1477] = 4.641258003304681E+00; // 411030
ref_results[1478] = 2.443906288219065E+02; // 421030
ref_results[1479] = 2.430285417604645E+02; // 431030
ref_results[1480] = 1.465985021432701E+07; // 441030
ref_results[1481] = 3.237270732994262E+07; // 451030
ref_results[1482] = 2.247184424359968E+04; // 451031
ref_results[1483] = 2.176257764752010E+06; // 461030
ref_results[1484] = 4.675134556221050E+03; // 471030
ref_results[1485] = 3.063095265891308E-02; // 381040
ref_results[1486] = 2.428723352999427E-01; // 391040
ref_results[1487] = 2.479084248604492E+00; // 401040
ref_results[1488] = 1.173476244708707E+01; // 411040
ref_results[1489] = 7.294974635763460E-01; // 411041
ref_results[1490] = 2.400530905092057E+02; // 421040
ref_results[1491] = 4.603346813266528E+03; // 431040
ref_results[1492] = 2.687454132340088E+07; // 441040
ref_results[1493] = 8.245162831647386E+01; // 451040
ref_results[1494] = 2.279216448908008E+02; // 451041
ref_results[1495] = 1.624358408601642E+07; // 461040
ref_results[1496] = 4.054253846549992E-02; // 381050
ref_results[1497] = 7.660887644155824E-02; // 391050
ref_results[1498] = 5.600191902649367E-01; // 401050
ref_results[1499] = 3.610263145928251E+00; // 411050
ref_results[1500] = 5.782743755208084E+01; // 421050
ref_results[1501] = 1.315896674359308E+03; // 431050
ref_results[1502] = 6.081773616943194E+04; // 441050
ref_results[1503] = 6.689654905795404E+05; // 451050
ref_results[1504] = 8.270735867042758E+01; // 451051
ref_results[1505] = 4.179139521936182E+07; // 461050
ref_results[1506] = 7.351008299287783E+06; // 471050
ref_results[1507] = 3.640745953881562E+02; // 471051
ref_results[1508] = 4.487738647136617E+03; // 481050
ref_results[1509] = 4.180738720903973E-03; // 391060
ref_results[1510] = 3.867471434612410E-01; // 401060
ref_results[1511] = 2.348144203170150E+00; // 411060
ref_results[1512] = 2.256367457879005E+01; // 421060
ref_results[1513] = 1.041085213242157E+02; // 431060
ref_results[1514] = 2.034562638223253E+07; // 441060
ref_results[1515] = 2.393824835327465E+01; // 451060
ref_results[1516] = 1.001409111577170E+03; // 451061
ref_results[1517] = 1.010703831995322E+07; // 461060
ref_results[1518] = 5.006105919607943E+01; // 471060
ref_results[1519] = 4.653177482143524E+05; // 471061
ref_results[1520] = 7.796596001157426E+06; // 481060
ref_results[1521] = 3.156113518656195E-02; // 391070
ref_results[1522] = 3.589670217614893E-01; // 401070
ref_results[1523] = 1.167401021846186E+00; // 411070
ref_results[1524] = 1.321242044209502E+01; // 421070
ref_results[1525] = 1.003684549682310E+02; // 431070
ref_results[1526] = 1.223874743963456E+03; // 441070
ref_results[1527] = 7.974185873927547E+03; // 451070
ref_results[1528] = 4.636914070512404E+07; // 461070
ref_results[1529] = 2.627777038520327E+01; // 461071
ref_results[1530] = 1.641743135152995E+07; // 471070
ref_results[1531] = 9.548620480565302E+01; // 471071
ref_results[1532] = 2.864901572636591E+04; // 481070
ref_results[1533] = 1.502713265746318E+03; // 491070
ref_results[1534] = 5.918401308123068E-02; // 391080
ref_results[1535] = 1.388555576180116E-01; // 401080
ref_results[1536] = 4.071849332538426E-01; // 411080
ref_results[1537] = 4.007551331078010E+00; // 421080
ref_results[1538] = 2.570533680104370E+01; // 431080
ref_results[1539] = 1.534060854356944E+03; // 441080
ref_results[1540] = 9.490614289337219E+01; // 451080
ref_results[1541] = 3.578244547799054E+01; // 451081
ref_results[1542] = 3.753549784120335E+07; // 461080
ref_results[1543] = 7.375105711135843E+01; // 471080
ref_results[1544] = 4.108283251852543E+06; // 471081
ref_results[1545] = 5.096824419392923E+06; // 481080
ref_results[1546] = 7.047258619422011E-03; // 401090
ref_results[1547] = 2.271996082647912E-01; // 411090
ref_results[1548] = 7.648558383921543E-01; // 421090
ref_results[1549] = 2.288717751323052E+00; // 431090
ref_results[1550] = 1.211722944308902E+02; // 441090
ref_results[1551] = 3.073977026311510E+02; // 451090
ref_results[1552] = 1.987663935173311E+05; // 461090
ref_results[1553] = 4.676612812430680E+01; // 461091
ref_results[1554] = 3.269235023213018E+07; // 471090
ref_results[1555] = 2.175360214059361E+02; // 471091
ref_results[1556] = 1.002514330641764E+07; // 481090
ref_results[1557] = 8.255330465394025E+03; // 491090
ref_results[1558] = 1.117774693012818E-01; // 401100
ref_results[1559] = 2.562206052378267E-01; // 411100
ref_results[1560] = 3.745571263294753E-01; // 421100
ref_results[1561] = 1.454309271657544E+00; // 431100
ref_results[1562] = 2.381394126521126E+01; // 441100
ref_results[1563] = 8.371827921911532E+00; // 451100
ref_results[1564] = 3.496981780060015E+01; // 451101
ref_results[1565] = 2.354916353599464E+07; // 461100
ref_results[1566] = 1.333865742878925E+01; // 471100
ref_results[1567] = 2.326241621337201E+06; // 471101
ref_results[1568] = 5.031857474795808E+06; // 481100
ref_results[1569] = 1.537345479602288E-01; // 411110
ref_results[1570] = 2.911917854815924E-01; // 421110
ref_results[1571] = 5.425431814254705E-01; // 431110
ref_results[1572] = 6.974563900739126E+00; // 441110
ref_results[1573] = 4.862834870082466E+01; // 451110
ref_results[1574] = 7.533447163279357E+03; // 461110
ref_results[1575] = 2.374793266193352E+04; // 461111
ref_results[1576] = 4.935422673490068E+06; // 471110
ref_results[1577] = 4.246807225208407E+02; // 471111
ref_results[1578] = 6.141669809624935E+07; // 481110
ref_results[1579] = 1.879704134691995E+03; // 481111
ref_results[1580] = 5.080097346475293E+05; // 491110
ref_results[1581] = 5.257396086144453E+01; // 491111
ref_results[1582] = 2.537013300785245E+03; // 501110
ref_results[1583] = 2.909331247143407E-02; // 411120
ref_results[1584] = 3.128811968276683E-01; // 421120
ref_results[1585] = 4.210209372725684E-01; // 431120
ref_results[1586] = 3.295756011685832E+00; // 441120
ref_results[1587] = 8.927889917488660E+00; // 451120
ref_results[1588] = 2.616786663356328E+05; // 461120
ref_results[1589] = 4.380900572463989E+04; // 471120
ref_results[1590] = 2.937979017542910E+07; // 481120
ref_results[1591] = 1.638648068627171E+03; // 491120
ref_results[1592] = 4.897182465973190E+02; // 491121
ref_results[1593] = 9.123963923447678E+06; // 501120
ref_results[1594] = 4.684698314018620E-02; // 411130
ref_results[1595] = 6.410238826066350E-02; // 421130
ref_results[1596] = 9.920792500002235E-02; // 431130
ref_results[1597] = 5.382281840984487E-01; // 441130
ref_results[1598] = 3.879630102030320E+00; // 451130
ref_results[1599] = 2.011978194544110E+02; // 461130
ref_results[1600] = 5.290502748185529E+04; // 471130
ref_results[1601] = 1.891072320066812E+02; // 471131
ref_results[1602] = 2.766000060534652E+07; // 481130
ref_results[1603] = 6.886643963819335E+06; // 481131
ref_results[1604] = 1.208913033614977E+07; // 491130
ref_results[1605] = 4.700238421135393E+03; // 491131
ref_results[1606] = 5.133637685240233E+06; // 501130
ref_results[1607] = 3.055918720203521E+02; // 501131
ref_results[1608] = 1.238661205155144E+02; // 511130
ref_results[1609] = 2.775140748168741E-02; // 421140
ref_results[1610] = 1.487054433665902E-01; // 431140
ref_results[1611] = 1.216636471887064E+00; // 441140
ref_results[1612] = 6.623786410807373E+00; // 451140
ref_results[1613] = 5.797566818773640E+02; // 461140
ref_results[1614] = 2.356666136433449E+01; // 471140
ref_results[1615] = 3.412103245754185E+07; // 481140
ref_results[1616] = 8.472519656115321E+01; // 491140
ref_results[1617] = 3.281550942195872E+06; // 491141
ref_results[1618] = 7.295417704494009E+06; // 501140
ref_results[1619] = 1.115967825152786E-01; // 421150
ref_results[1620] = 3.349526377243491E-01; // 431150
ref_results[1621] = 2.134598574309270E+00; // 441150
ref_results[1622] = 3.663552189195407E+00; // 451150
ref_results[1623] = 9.877145610573464E+01; // 461150
ref_results[1624] = 5.360623260112000E+03; // 471150
ref_results[1625] = 2.465265575279360E+01; // 471151
ref_results[1626] = 1.291416522400539E+06; // 481150
ref_results[1627] = 3.940827834489657E+06; // 481151
ref_results[1628] = 5.004702074072213E+07; // 491150
ref_results[1629] = 1.239411199867952E+05; // 491151
ref_results[1630] = 1.370966426515065E+07; // 501150
ref_results[1631] = 3.088852192461829E+03; // 511150
ref_results[1632] = 2.318493738847101E-09; // 511151
ref_results[1633] = 2.250144069011768E+02; // 521150
ref_results[1634] = 7.599327830766273E-02; // 431160
ref_results[1635] = 1.228678358443212E+00; // 441160
ref_results[1636] = 2.222173048711642E+00; // 451160
ref_results[1637] = 4.317442510008299E+01; // 461160
ref_results[1638] = 6.630959446450375E+02; // 471160
ref_results[1639] = 1.158369891383142E+01; // 471161
ref_results[1640] = 3.910895271074399E+07; // 481160
ref_results[1641] = 1.181499013856065E+01; // 491160
ref_results[1642] = 7.734109947936518E+02; // 491161
ref_results[1643] = 6.505162404832748E+06; // 501160
ref_results[1644] = 1.121303001543269E-01; // 431170
ref_results[1645] = 4.513367418922635E-01; // 441170
ref_results[1646] = 1.409562945911019E+00; // 451170
ref_results[1647] = 1.430933185693598E+01; // 461170
ref_results[1648] = 2.506512879243638E+02; // 471170
ref_results[1649] = 2.961198688941133E+00; // 471171
ref_results[1650] = 3.995137187334926E+04; // 481170
ref_results[1651] = 4.961354556121406E+03; // 481171
ref_results[1652] = 8.201922957320159E+03; // 491170
ref_results[1653] = 2.580501010150637E+04; // 491171
ref_results[1654] = 5.683673743833394E+07; // 501170
ref_results[1655] = 1.308720788186774E+06; // 501171
ref_results[1656] = 2.656842818610414E+04; // 511170
ref_results[1657] = 4.446480093434401E+03; // 521170
ref_results[1658] = 2.362553117347939E-02; // 431180
ref_results[1659] = 4.523082160038527E-01; // 441180
ref_results[1660] = 6.016474071467330E-01; // 451180
ref_results[1661] = 4.539702168340906E+00; // 461180
ref_results[1662] = 1.142251744191739E+01; // 471180
ref_results[1663] = 2.780258475663867E+00; // 471181
ref_results[1664] = 1.217318052033665E+04; // 481180
ref_results[1665] = 2.179769041793423E+01; // 491180
ref_results[1666] = 7.359096907337010E+01; // 491181
ref_results[1667] = 4.600715142441837E+07; // 501180
ref_results[1668] = 1.372921283572521E+02; // 511180
ref_results[1669] = 1.864652458226261E+04; // 511181
ref_results[1670] = 7.003006646776340E+04; // 521180
ref_results[1671] = 2.247519495283909E-01; // 441190
ref_results[1672] = 8.491531374315757E-01; // 451190
ref_results[1673] = 3.104426721567824E+00; // 461190
ref_results[1674] = 9.322304577770169E+00; // 471190
ref_results[1675] = 7.782284581890804E+02; // 481190
ref_results[1676] = 1.848786808369048E+02; // 481191
ref_results[1677] = 5.896644673558261E+02; // 491190
ref_results[1678] = 3.473088874186157E+03; // 491191
ref_results[1679] = 4.796402589743120E+07; // 501190
ref_results[1680] = 4.112106878821442E+06; // 501191
ref_results[1681] = 3.594869645462885E+04; // 511190
ref_results[1682] = 1.250169778722228E+04; // 521190
ref_results[1683] = 1.901800501409146E-01; // 441200
ref_results[1684] = 4.144462228794717E-01; // 451200
ref_results[1685] = 1.723488074167204E+00; // 461200
ref_results[1686] = 5.267710906785244E+00; // 471200
ref_results[1687] = 4.291834904043426E-01; // 471201
ref_results[1688] = 3.073216492289545E+02; // 481200
ref_results[1689] = 2.043649186006959E+01; // 491200
ref_results[1690] = 6.340791982645703E+01; // 491201
ref_results[1691] = 5.754952585702694E+07; // 501200
ref_results[1692] = 7.160286733998802E+01; // 511200
ref_results[1693] = 7.262790385087443E+04; // 511201
ref_results[1694] = 3.785599580154426E+06; // 521200
ref_results[1695] = 1.441374285110704E-01; // 451210
ref_results[1696] = 3.039619922742990E-01; // 461210
ref_results[1697] = 8.552466055810828E-01; // 471210
ref_results[1698] = 1.824611881357431E+01; // 481210
ref_results[1699] = 8.692056990194613E+00; // 481211
ref_results[1700] = 6.152203564257425E+01; // 491210
ref_results[1701] = 2.935687733825644E+02; // 491211
ref_results[1702] = 3.644774530671279E+05; // 501210
ref_results[1703] = 2.050910425785759E+06; // 501211
ref_results[1704] = 3.430236945749718E+07; // 511210
ref_results[1705] = 1.591814088292798E+06; // 521210
ref_results[1706] = 3.402036566816116E+06; // 521211
ref_results[1707] = 4.221329792276209E+03; // 531210
ref_results[1708] = 6.302881153815038E-02; // 451220
ref_results[1709] = 9.009202710507506E-01; // 461220
ref_results[1710] = 8.868718057138607E-01; // 471220
ref_results[1711] = 4.377650277807349E-01; // 471221
ref_results[1712] = 1.719024119728348E+01; // 481220
ref_results[1713] = 6.262510331669805E+00; // 491220
ref_results[1714] = 2.663702100319221E+00; // 491221
ref_results[1715] = 3.032553777399398E+07; // 501220
ref_results[1716] = 4.251698488016854E+05; // 511220
ref_results[1717] = 1.096475739684295E+02; // 511221
ref_results[1718] = 1.476195610038473E+07; // 521220
ref_results[1719] = 2.978512591841647E-01; // 461230
ref_results[1720] = 6.576688912293026E-01; // 471230
ref_results[1721] = 6.300700161707174E+00; // 481230
ref_results[1722] = 2.889934956938767E+00; // 481231
ref_results[1723] = 2.628562531424811E+01; // 491230
ref_results[1724] = 1.277087486623089E+02; // 491231
ref_results[1725] = 1.543517755858683E+07; // 501230
ref_results[1726] = 9.525912110001393E+03; // 501231
ref_results[1727] = 2.842711722872742E+07; // 511230
ref_results[1728] = 9.026366682743885E+06; // 521230
ref_results[1729] = 2.904373456553658E+06; // 521231
ref_results[1730] = 5.880994110443177E+04; // 531230
ref_results[1731] = 2.203956953254698E-01; // 461240
ref_results[1732] = 3.729276698300252E-01; // 471240
ref_results[1733] = 3.416322424230129E+00; // 481240
ref_results[1734] = 1.246755854251795E+01; // 491240
ref_results[1735] = 4.508860704885137E+00; // 491241
ref_results[1736] = 3.373053294623526E+07; // 501240
ref_results[1737] = 1.921098810680384E+06; // 511240
ref_results[1738] = 1.872184317184774E+01; // 511241
ref_results[1739] = 1.166562949310394E+07; // 521240
ref_results[1740] = 2.779395100722148E+05; // 531240
ref_results[1741] = 4.876704428596412E+05; // 541240
ref_results[1742] = 8.324093663876744E-02; // 471250
ref_results[1743] = 6.668288627742115E-01; // 481250
ref_results[1744] = 2.860521838878076E+00; // 491250
ref_results[1745] = 6.941150233261554E+00; // 491251
ref_results[1746] = 1.956510888259975E+06; // 501250
ref_results[1747] = 1.004750997358852E+03; // 501251
ref_results[1748] = 2.833719971842173E+07; // 511250
ref_results[1749] = 1.024883176694158E+07; // 521250
ref_results[1750] = 2.707331681725458E+06; // 521251
ref_results[1751] = 7.793317803207312E+06; // 531250
ref_results[1752] = 8.525517072298669E+04; // 541250
ref_results[1753] = 4.378820538077385E+01; // 541251
ref_results[1754] = 9.943425109942726E-02; // 471260
ref_results[1755] = 6.206183008136971E-01; // 481260
ref_results[1756] = 2.840774061660147E+00; // 491260
ref_results[1757] = 6.179136901500263E-01; // 491261
ref_results[1758] = 2.096126973143807E+07; // 501260
ref_results[1759] = 1.682783225760054E+06; // 511260
ref_results[1760] = 1.303884668830900E+03; // 511261
ref_results[1761] = 2.068362881344679E+07; // 521260
ref_results[1762] = 4.890032282534878E+05; // 531260
ref_results[1763] = 2.040300018891990E+06; // 541260
ref_results[1764] = 8.303696812548657E-02; // 471270
ref_results[1765] = 7.784821941489718E-01; // 481270
ref_results[1766] = 3.403386215134375E+00; // 491270
ref_results[1767] = 2.731929562556201E+00; // 491271
ref_results[1768] = 3.174202147276431E+04; // 501270
ref_results[1769] = 1.285617871579901E+02; // 501271
ref_results[1770] = 1.904310956870786E+06; // 511270
ref_results[1771] = 1.974974952626131E+05; // 521270
ref_results[1772] = 4.063239642723899E+06; // 521271
ref_results[1773] = 4.691476625561319E+07; // 531270
ref_results[1774] = 5.840876699627522E+06; // 541270
ref_results[1775] = 8.770508101461306E+00; // 541271
ref_results[1776] = 2.635983941740698E+04; // 551270
ref_results[1777] = 4.092125800241701E-02; // 471280
ref_results[1778] = 3.857779027514459E-01; // 481280
ref_results[1779] = 1.207620759741716E+00; // 491280
ref_results[1780] = 8.616983214199052E-01; // 491281
ref_results[1781] = 1.405155968709287E+04; // 501280
ref_results[1782] = 6.581745382795424E+00; // 501281
ref_results[1783] = 1.521338243379725E+05; // 511280
ref_results[1784] = 5.193902155619283E+01; // 511281
ref_results[1785] = 3.050567368855524E+07; // 521280
ref_results[1786] = 4.076401179305176E+02; // 531280
ref_results[1787] = 4.212513575366076E+06; // 541280
ref_results[1788] = 1.121860466395041E-02; // 471290
ref_results[1789] = 3.551533885522486E-01; // 481290
ref_results[1790] = 1.048511407425333E+00; // 491290
ref_results[1791] = 6.397531763074335E-02; // 491291
ref_results[1792] = 2.496871716767917E+02; // 501290
ref_results[1793] = 1.049660382651769E+02; // 501291
ref_results[1794] = 3.367250907123389E+04; // 511290
ref_results[1795] = 1.340154852444587E+04; // 521290
ref_results[1796] = 9.172877258375302E+05; // 521291
ref_results[1797] = 2.343252996852518E+07; // 531290
ref_results[1798] = 1.134367559615576E+07; // 541290
ref_results[1799] = 1.049721207990966E+05; // 541291
ref_results[1800] = 1.326189481110934E+05; // 551290
ref_results[1801] = 5.921631915582725E+03; // 561290
ref_results[1802] = 5.750162614479865E-02; // 471300
ref_results[1803] = 3.476616248562892E-01; // 481300
ref_results[1804] = 9.612042521870863E-01; // 491300
ref_results[1805] = 7.600062530135636E-01; // 491301
ref_results[1806] = 1.192791474630866E+03; // 501300
ref_results[1807] = 7.897690357653406E+01; // 501301
ref_results[1808] = 5.414180989526833E+03; // 511300
ref_results[1809] = 2.115451831006932E+03; // 511301
ref_results[1810] = 5.512917195555282E+07; // 521300
ref_results[1811] = 3.108121526238012E+04; // 531300
ref_results[1812] = 1.533418390825644E+02; // 531301
ref_results[1813] = 5.622050057127334E+06; // 541300
ref_results[1814] = 9.027917595361300E-02; // 481310
ref_results[1815] = 6.829609521467165E-01; // 491310
ref_results[1816] = 2.351266713693326E-01; // 491311
ref_results[1817] = 2.317533306713848E+02; // 501310
ref_results[1818] = 1.714877274378384E+01; // 501311
ref_results[1819] = 7.242616122200150E+03; // 511310
ref_results[1820] = 8.551743193384738E+03; // 521310
ref_results[1821] = 6.293181605065030E+03; // 521311
ref_results[1822] = 4.383062389658483E+06; // 531310
ref_results[1823] = 4.883108280416948E+07; // 541310
ref_results[1824] = 1.406344002329930E+06; // 541311
ref_results[1825] = 1.347789233112667E+06; // 551310
ref_results[1826] = 6.290630316017530E+05; // 561310
ref_results[1827] = 1.317668031841310E-01; // 481320
ref_results[1828] = 3.535096261819161E-01; // 491320
ref_results[1829] = 1.242551795341626E+02; // 501320
ref_results[1830] = 6.670785528987990E+02; // 511320
ref_results[1831] = 1.843370155754849E+00; // 511321
ref_results[1832] = 1.194408026678453E+06; // 521320
ref_results[1833] = 5.149528432497195E+04; // 531320
ref_results[1834] = 5.192383104479962E+03; // 531321
ref_results[1835] = 4.990540149443099E+07; // 541320
ref_results[1836] = 6.404084863419671E+05; // 551320
ref_results[1837] = 2.687792888525628E+06; // 561320
ref_results[1838] = 1.951754077659957E-01; // 491330
ref_results[1839] = 2.163158115593088E+00; // 501330
ref_results[1840] = 3.768446141634413E+02; // 511330
ref_results[1841] = 2.990792116907915E+03; // 521330
ref_results[1842] = 4.210927843361251E+03; // 521331
ref_results[1843] = 4.099460395788646E+05; // 531330
ref_results[1844] = 1.103770555020045E+00; // 531331
ref_results[1845] = 2.590743228456744E+06; // 541330
ref_results[1846] = 1.497184492006701E+04; // 541331
ref_results[1847] = 3.565272962034104E+07; // 551330
ref_results[1848] = 5.855202838035831E+06; // 561330
ref_results[1849] = 9.096326580794237E+03; // 571330
ref_results[1850] = 1.430125288937747E-01; // 491340
ref_results[1851] = 1.390413410203053E+00; // 501340
ref_results[1852] = 2.033101192854602E+00; // 511340
ref_results[1853] = 7.553606845576467E+00; // 511341
ref_results[1854] = 1.237452824859057E+04; // 521340
ref_results[1855] = 2.016384104289485E+04; // 531340
ref_results[1856] = 1.290181189001882E+02; // 531341
ref_results[1857] = 4.689236706118138E+07; // 541340
ref_results[1858] = 3.266798181422951E-01; // 541341
ref_results[1859] = 3.243460319868252E+06; // 551340
ref_results[1860] = 2.225441970954671E+03; // 551341
ref_results[1861] = 6.585596201438781E+06; // 561340
ref_results[1862] = 7.631922381580886E-02; // 491350
ref_results[1863] = 8.588837959041000E-01; // 501350
ref_results[1864] = 2.582828784350689E+00; // 511350
ref_results[1865] = 5.466529090017638E+01; // 521350
ref_results[1866] = 9.772080984428924E+04; // 531350
ref_results[1867] = 1.494069335436359E+05; // 541350
ref_results[1868] = 4.972850049166327E+02; // 541351
ref_results[1869] = 3.497553856579161E+07; // 551350
ref_results[1870] = 2.414706584184078E+03; // 551351
ref_results[1871] = 1.902553110857219E+07; // 561350
ref_results[1872] = 8.489128684631106E+04; // 561351
ref_results[1873] = 1.333556807299046E+05; // 571350
ref_results[1874] = 5.262306851397744E+04; // 581350
ref_results[1875] = 1.019147499956224E-01; // 501360
ref_results[1876] = 2.176937112840295E+00; // 511360
ref_results[1877] = 4.349106441286376E+01; // 521360
ref_results[1878] = 3.248761214958947E+02; // 531360
ref_results[1879] = 2.834282126235660E+01; // 531361
ref_results[1880] = 3.481971259572459E+07; // 541360
ref_results[1881] = 9.770522356151246E+05; // 551360
ref_results[1882] = 2.661250299472353E+01; // 551361
ref_results[1883] = 2.071747120896126E+07; // 561360
ref_results[1884] = 4.985386211645826E-02; // 561361
ref_results[1885] = 2.632195738587410E-01; // 501370
ref_results[1886] = 3.106482101256465E-01; // 511370
ref_results[1887] = 5.511207348909831E+00; // 521370
ref_results[1888] = 6.092110078892534E+01; // 531370
ref_results[1889] = 8.603457319031093E+02; // 541370
ref_results[1890] = 2.746315130762303E+07; // 551370
ref_results[1891] = 1.418856066967542E+07; // 561370
ref_results[1892] = 1.867124313205292E+02; // 561371
ref_results[1893] = 6.893590547584197E+06; // 571370
ref_results[1894] = 3.566549114201905E+04; // 581370
ref_results[1895] = 1.839683063419688E-01; // 511380
ref_results[1896] = 2.124405918207220E+00; // 521380
ref_results[1897] = 1.264687740323234E+01; // 531380
ref_results[1898] = 2.850437496935664E+03; // 541380
ref_results[1899] = 8.152942941505745E+03; // 551380
ref_results[1900] = 3.484262101457161E+01; // 551381
ref_results[1901] = 3.169722362081516E+07; // 561380
ref_results[1902] = 8.838675525301896E+05; // 571380
ref_results[1903] = 4.364256394232539E+05; // 581380
ref_results[1904] = 1.583412360657254E-01; // 511390
ref_results[1905] = 4.312892691669170E-01; // 521390
ref_results[1906] = 3.316324421691107E+00; // 531390
ref_results[1907] = 7.332424540199830E+01; // 541390
ref_results[1908] = 1.360847489387899E+03; // 551390
ref_results[1909] = 1.456294862684296E+04; // 561390
ref_results[1910] = 2.757926131631673E+07; // 571390
ref_results[1911] = 1.129806854393638E+07; // 581390
ref_results[1912] = 4.817116353019155E+01; // 581391
ref_results[1913] = 2.156876121410388E+04; // 591390
ref_results[1914] = 7.827408249050816E-02; // 521400
ref_results[1915] = 4.129858068559947E-01; // 531400
ref_results[1916] = 2.094117263279892E+01; // 541400
ref_results[1917] = 1.888391405237624E+02; // 551400
ref_results[1918] = 4.808243110497884E+06; // 561400
ref_results[1919] = 8.009453420642212E+05; // 571400
ref_results[1920] = 4.290322271233355E+07; // 581400
ref_results[1921] = 3.862470149603190E+02; // 591400
ref_results[1922] = 2.011955909273142E+05; // 601400
ref_results[1923] = 2.511441370206609E-02; // 521410
ref_results[1924] = 2.059697995708556E-01; // 531410
ref_results[1925] = 2.042030092045049E+00; // 541410
ref_results[1926] = 3.673455214463033E+01; // 551410
ref_results[1927] = 1.825889729673140E+03; // 561410
ref_results[1928] = 2.609468969633325E+04; // 571410
ref_results[1929] = 8.053648806758526E+06; // 581410
ref_results[1930] = 2.218045035683139E+07; // 591410
ref_results[1931] = 1.061937020743474E+04; // 601410
ref_results[1932] = 1.216362741128076E+03; // 611410
ref_results[1933] = 8.967326057660036E-02; // 521420
ref_results[1934] = 2.474253802933250E-01; // 531420
ref_results[1935] = 2.113417029731494E+00; // 541420
ref_results[1936] = 4.786419854326164E+00; // 551420
ref_results[1937] = 2.386750276062412E+03; // 561420
ref_results[1938] = 2.588136435476986E+04; // 571420
ref_results[1939] = 2.975501823801628E+07; // 581420
ref_results[1940] = 1.016764731746534E+05; // 591420
ref_results[1941] = 5.240979303976187E+02; // 591421
ref_results[1942] = 9.243892463718897E+06; // 601420
ref_results[1943] = 7.303298828240146E-02; // 531430
ref_results[1944] = 2.135322202709560E-01; // 541430
ref_results[1945] = 2.366911889443664E+00; // 551430
ref_results[1946] = 3.778720008110567E+01; // 561430
ref_results[1947] = 2.470578617048669E+03; // 571430
ref_results[1948] = 4.746689877761417E+05; // 581430
ref_results[1949] = 5.991594842884470E+06; // 591430
ref_results[1950] = 3.295078724954606E+07; // 601430
ref_results[1951] = 4.096438796228060E+06; // 611430
ref_results[1952] = 2.127305623829321E+02; // 621430
ref_results[1953] = 3.702006801995638E-01; // 621431
ref_results[1954] = 8.612707378157805E-02; // 531440
ref_results[1955] = 5.739675355923337E-01; // 541440
ref_results[1956] = 1.830414179924594E+00; // 551440
ref_results[1957] = 2.887730244993281E+01; // 561440
ref_results[1958] = 1.040100628256115E+02; // 571440
ref_results[1959] = 1.955653571394030E+07; // 581440
ref_results[1960] = 2.348575105586006E+03; // 591440
ref_results[1961] = 2.908904233245257E+02; // 591441
ref_results[1962] = 1.850276736162897E+07; // 601440
ref_results[1963] = 1.490817722471932E+06; // 611440
ref_results[1964] = 7.291356375395387E+06; // 621440
ref_results[1965] = 7.530228715712448E-02; // 541450
ref_results[1966] = 1.094671353202994E+00; // 551450
ref_results[1967] = 1.364153725000239E+01; // 561450
ref_results[1968] = 1.081620545088638E+02; // 571450
ref_results[1969] = 9.864891917125960E+02; // 581450
ref_results[1970] = 1.418324368951245E+05; // 591450
ref_results[1971] = 4.290982491699371E+07; // 601450
ref_results[1972] = 6.028872505389309E+06; // 611450
ref_results[1973] = 3.912641784665379E+05; // 621450
ref_results[1974] = 1.864204338335637E-01; // 541460
ref_results[1975] = 4.125869398733479E-01; // 551460
ref_results[1976] = 5.055932168538281E+00; // 561460
ref_results[1977] = 2.277348649686790E+01; // 571460
ref_results[1978] = 6.560614142303405E+00; // 571461
ref_results[1979] = 3.528216588033742E+03; // 581460
ref_results[1980] = 7.709716012518488E+03; // 591460
ref_results[1981] = 3.464158318219278E+07; // 601460
ref_results[1982] = 2.964365771038276E+06; // 611460
ref_results[1983] = 3.766908696453386E+06; // 621460
ref_results[1984] = 1.373297667527227E-01; // 541470
ref_results[1985] = 5.011538292662017E-01; // 551470
ref_results[1986] = 2.500537174849203E+00; // 561470
ref_results[1987] = 1.319419155822504E+01; // 571470
ref_results[1988] = 2.509081191297062E+02; // 581470
ref_results[1989] = 3.805396651005499E+03; // 591470
ref_results[1990] = 4.882045755480910E+06; // 601470
ref_results[1991] = 3.162205397930173E+07; // 611470
ref_results[1992] = 1.155553323896962E+07; // 621470
ref_results[1993] = 4.976475015431404E+06; // 631470
ref_results[1994] = 1.612886579215066E+05; // 641470
ref_results[1995] = 1.636405183961793E-02; // 551480
ref_results[1996] = 1.065324239260476E+00; // 561480
ref_results[1997] = 3.692561298293727E+00; // 571480
ref_results[1998] = 1.911698939338297E+02; // 581480
ref_results[1999] = 6.192854791430925E+02; // 591480
ref_results[2000] = 7.829872256583687E+01; // 591481
ref_results[2001] = 3.891122095032478E+07; // 601480
ref_results[2002] = 2.481003106567768E+05; // 611480
ref_results[2003] = 3.716141895018232E+06; // 611481
ref_results[2004] = 1.268164747417790E+07; // 621480
ref_results[2005] = 1.519873235496638E-01; // 551490
ref_results[2006] = 8.896416459828549E-01; // 561490
ref_results[2007] = 2.756601141954531E+00; // 571490
ref_results[2008] = 1.960952713428632E+01; // 581490
ref_results[2009] = 6.682205210460813E+02; // 591490
ref_results[2010] = 3.263107158031225E+04; // 601490
ref_results[2011] = 1.033755923799872E+06; // 611490
ref_results[2012] = 3.741317971871044E+07; // 621490
ref_results[2013] = 2.583841378012420E+06; // 631490
ref_results[2014] = 2.096230788979181E+05; // 641490
ref_results[2015] = 5.330689866364691E-02; // 551500
ref_results[2016] = 4.972139796245626E-01; // 561500
ref_results[2017] = 1.043385743288668E+00; // 571500
ref_results[2018] = 1.075683912501275E+01; // 581500
ref_results[2019] = 2.501495602648034E+01; // 591500
ref_results[2020] = 2.506091023412196E+07; // 601500
ref_results[2021] = 2.273959345935998E+03; // 611500
ref_results[2022] = 3.792027050518090E+06; // 621500
ref_results[2023] = 8.626024119987870E-02; // 551510
ref_results[2024] = 1.639758085834450E-01; // 561510
ref_results[2025] = 1.093692049665984E+00; // 571510
ref_results[2026] = 2.506152955437886E+00; // 581510
ref_results[2027] = 5.032282865256958E+01; // 591510
ref_results[2028] = 2.657276853123159E+03; // 601510
ref_results[2029] = 3.889738081069318E+05; // 611510
ref_results[2030] = 2.573629489517838E+07; // 621510
ref_results[2031] = 8.825806711941395E+06; // 631510
ref_results[2032] = 1.574488973774447E+06; // 641510
ref_results[2033] = 1.098298781522373E+04; // 651510
ref_results[2034] = 1.128752183404752E-01; // 561520
ref_results[2035] = 7.112919963646702E-01; // 571520
ref_results[2036] = 3.413007611812130E+00; // 581520
ref_results[2037] = 1.244886605923680E+01; // 591520
ref_results[2038] = 2.695695858365115E+03; // 601520
ref_results[2039] = 1.297925725967637E+03; // 611520
ref_results[2040] = 2.506520798193451E+01; // 611521
ref_results[2041] = 3.692671988980992E+07; // 621520
ref_results[2042] = 3.237773844194411E+05; // 631520
ref_results[2043] = 2.763623902015977E+03; // 631521
ref_results[2044] = 6.437601189166382E+06; // 641520
ref_results[2045] = 2.461932658749199E-02; // 561530
ref_results[2046] = 4.130498092838753E-01; // 571530
ref_results[2047] = 2.305795492372764E+00; // 581530
ref_results[2048] = 1.360355215816834E+01; // 591530
ref_results[2049] = 1.430208513364572E+02; // 601530
ref_results[2050] = 1.752645248846354E+03; // 611530
ref_results[2051] = 1.110537898239226E+06; // 621530
ref_results[2052] = 4.359080614753609E+07; // 631530
ref_results[2053] = 8.807838412781967E+06; // 641530
ref_results[2054] = 7.219207085064407E-08; // 641531
ref_results[2055] = 6.566026747338200E+04; // 651530
ref_results[2056] = 5.785949438497200E-02; // 571540
ref_results[2057] = 1.506358300020370E+00; // 581540
ref_results[2058] = 6.277490706854616E+00; // 591540
ref_results[2059] = 1.077619331584790E+02; // 601540
ref_results[2060] = 7.381470543504504E+02; // 611540
ref_results[2061] = 6.702820142065795E+01; // 611541
ref_results[2062] = 3.671780474230978E+07; // 621540
ref_results[2063] = 1.288349900634943E+07; // 631540
ref_results[2064] = 3.304027585280776E+03; // 631541
ref_results[2065] = 1.184418325679277E+06; // 641540
ref_results[2066] = 4.991464110999542E-02; // 571550
ref_results[2067] = 8.875471853111208E-01; // 581550
ref_results[2068] = 1.930415457141364E+00; // 591550
ref_results[2069] = 2.493511984611823E+01; // 601550
ref_results[2070] = 1.203367612194790E+02; // 611550
ref_results[2071] = 4.804171583126728E+03; // 621550
ref_results[2072] = 2.325855656570280E+07; // 631550
ref_results[2073] = 1.208530918931429E+07; // 641550
ref_results[2074] = 1.056375318898757E-02; // 641551
ref_results[2075] = 3.502562446751245E+05; // 651550
ref_results[2076] = 1.174502234584528E+04; // 661550
ref_results[2077] = 1.347751753968471E-01; // 581560
ref_results[2078] = 1.300429961751911E+00; // 591560
ref_results[2079] = 1.270132751883640E+01; // 601560
ref_results[2080] = 9.276594909881072E+01; // 611560
ref_results[2081] = 1.355952361358993E+05; // 621560
ref_results[2082] = 6.634753147239759E+06; // 631560
ref_results[2083] = 3.324011788744864E+07; // 641560
ref_results[2084] = 4.559816476238665E+05; // 651560
ref_results[2085] = 1.217471847307619E+04; // 651561
ref_results[2086] = 4.382408848712733E+06; // 661560
ref_results[2087] = 5.578489150701692E-02; // 581570
ref_results[2088] = 6.203455194420315E-01; // 591570
ref_results[2089] = 5.928933679986040E+00; // 601570
ref_results[2090] = 3.734265953352846E+01; // 611570
ref_results[2091] = 2.227439367033019E+03; // 621570
ref_results[2092] = 3.137375600321318E+05; // 631570
ref_results[2093] = 3.858550274402159E+07; // 641570
ref_results[2094] = 6.307921607958224E+06; // 651570
ref_results[2095] = 1.646473206836017E+04; // 661570
ref_results[2096] = 1.495028628416141E-01; // 591580
ref_results[2097] = 1.423574646538599E+00; // 601580
ref_results[2098] = 1.015941044468590E+01; // 611580
ref_results[2099] = 9.733478104647008E+02; // 621580
ref_results[2100] = 8.839093129932677E+03; // 631580
ref_results[2101] = 2.183967337064083E+07; // 641580
ref_results[2102] = 8.800790504678659E+06; // 651580
ref_results[2103] = 2.320940857987418E+00; // 651581
ref_results[2104] = 6.081093413886922E+06; // 661580
ref_results[2105] = 1.148348358548998E-02; // 591590
ref_results[2106] = 5.563474454921601E-01; // 601590
ref_results[2107] = 2.567161081089931E+00; // 611590
ref_results[2108] = 2.953420195873636E+01; // 621590
ref_results[2109] = 3.410496880822362E+03; // 631590
ref_results[2110] = 2.784856617638216E+05; // 641590
ref_results[2111] = 2.846821510276833E+07; // 651590
ref_results[2112] = 5.686858709499968E+06; // 661590
ref_results[2113] = 4.462353372156394E+02; // 671590
ref_results[2114] = 1.232059742033926E+00; // 671591
ref_results[2115] = 9.423265033965286E-03; // 601600
ref_results[2116] = 2.348795284009080E+00; // 611600
ref_results[2117] = 2.049375224375182E+01; // 621600
ref_results[2118] = 1.017021583638761E+02; // 631600
ref_results[2119] = 1.751476241798733E+07; // 641600
ref_results[2120] = 2.693355226168435E+06; // 651600
ref_results[2121] = 5.651148622085587E+06; // 661600
ref_results[2122] = 5.535167704286207E-02; // 601610
ref_results[2123] = 4.719391710160130E-01; // 611610
ref_results[2124] = 3.639467616227968E+00; // 621610
ref_results[2125] = 4.924573722163754E+01; // 631610
ref_results[2126] = 4.514994522289867E+02; // 641610
ref_results[2127] = 2.045040338849648E+06; // 651610
ref_results[2128] = 3.315245145528845E+07; // 661610
ref_results[2129] = 1.607041511465094E+04; // 671610
ref_results[2130] = 2.571652418317189E+00; // 671611
ref_results[2131] = 1.172435241742313E+04; // 681610
ref_results[2132] = 6.129113969693960E-01; // 611620
ref_results[2133] = 2.506688737135338E+00; // 621620
ref_results[2134] = 2.005461865080685E+01; // 631620
ref_results[2135] = 1.234395833045272E+03; // 641620
ref_results[2136] = 1.298174671189774E+03; // 651620
ref_results[2137] = 2.498571750178624E+07; // 661620
ref_results[2138] = 8.767576886699724E+02; // 671620
ref_results[2139] = 1.363458798584410E+03; // 671621
ref_results[2140] = 2.171680922026972E+06; // 681620
ref_results[2141] = 1.784383336686467E-01; // 611630
ref_results[2142] = 2.280665634996670E+00; // 621630
ref_results[2143] = 1.635914747565542E+01; // 631630
ref_results[2144] = 2.564931493097715E+02; // 641630
ref_results[2145] = 4.560399050051963E+03; // 651630
ref_results[2146] = 2.340055943617725E+07; // 661630
ref_results[2147] = 9.076893276183845E+06; // 671630
ref_results[2148] = 3.124432759045696E-01; // 671631
ref_results[2149] = 2.034048313785297E+03; // 681630
ref_results[2150] = 6.192440469727877E-01; // 621640
ref_results[2151] = 4.799604425824693E+00; // 631640
ref_results[2152] = 1.168856177344632E+02; // 641640
ref_results[2153] = 6.362926116903328E+02; // 651640
ref_results[2154] = 3.260599641770007E+07; // 661640
ref_results[2155] = 2.488316263152084E+03; // 671640
ref_results[2156] = 2.522044382707737E+02; // 671641
ref_results[2157] = 6.764558431346722E+06; // 681640
ref_results[2158] = 2.563755679670272E-01; // 621650
ref_results[2159] = 1.889554724971439E+00; // 631650
ref_results[2160] = 2.815633189022618E+01; // 641650
ref_results[2161] = 3.985018458108920E+02; // 651650
ref_results[2162] = 2.881941357166506E+04; // 661650
ref_results[2163] = 1.665811149462357E+02; // 661651
ref_results[2164] = 2.942069051060231E+07; // 671650
ref_results[2165] = 1.542203969620034E+04; // 681650
ref_results[2166] = 3.318843329582106E+04; // 691650
ref_results[2167] = 8.084540497209761E-02; // 631660
ref_results[2168] = 7.442197939667262E+00; // 641660
ref_results[2169] = 3.947070129048039E+01; // 651660
ref_results[2170] = 9.721673027719131E+05; // 661660
ref_results[2171] = 3.200371254827633E+05; // 671660
ref_results[2172] = 2.115442762870430E+06; // 671661
ref_results[2173] = 3.087353095032136E+07; // 681660
ref_results[2174] = 4.252382199842805E+04; // 691660
ref_results[2175] = 6.747399412391490E+04; // 701660
ref_results[2176] = 1.985625453681497E-01; // 631670
ref_results[2177] = 3.272091656516824E+00; // 641670
ref_results[2178] = 4.228597888566280E+01; // 651670
ref_results[2179] = 1.312672127488213E+03; // 661670
ref_results[2180] = 4.607276703338126E+04; // 671670
ref_results[2181] = 5.219461148029190E+07; // 681670
ref_results[2182] = 9.706679208089891E+00; // 681671
ref_results[2183] = 2.167260146547129E+06; // 691670
ref_results[2184] = 1.509055570310484E+03; // 701670
ref_results[2185] = 5.820377545946075E-02; // 641680
ref_results[2186] = 1.808991478456785E+00; // 651680
ref_results[2187] = 6.485466381798650E+02; // 661680
ref_results[2188] = 2.633762657204549E+02; // 671680
ref_results[2189] = 1.350752109109069E+07; // 681680
ref_results[2190] = 2.741301147808947E+06; // 691680
ref_results[2191] = 4.494309274318704E+06; // 701680
ref_results[2192] = 9.934990991309111E-01; // 641690
ref_results[2193] = 4.759271204005222E+00; // 651690
ref_results[2194] = 1.176601421060730E+02; // 661690
ref_results[2195] = 1.085515631932422E+03; // 671690
ref_results[2196] = 4.156144182502326E+06; // 681690
ref_results[2197] = 3.226297725355156E+07; // 691690
ref_results[2198] = 2.485461876555010E+06; // 701690
ref_results[2199] = 1.548996321656889E+01; // 701691
ref_results[2200] = 8.283944710727314E+04; // 711690
ref_results[2201] = 9.390576398886071E+01; // 711691
ref_results[2202] = 1.500747643452854E-02; // 651700
ref_results[2203] = 3.057005777073202E+01; // 661700
ref_results[2204] = 2.944566845375887E+02; // 671700
ref_results[2205] = 4.502921542879373E+01; // 671701
ref_results[2206] = 2.453374775724642E+07; // 681700
ref_results[2207] = 5.795735290570704E+06; // 691700
ref_results[2208] = 4.959026149114624E+06; // 701700
ref_results[2209] = 6.711629817413163E-01; // 651710
ref_results[2210] = 1.111749822042278E+01; // 661710
ref_results[2211] = 1.463259965677020E+02; // 671710
ref_results[2212] = 1.116570931467829E+05; // 681710
ref_results[2213] = 3.019223420993264E+07; // 691710
ref_results[2214] = 1.352204563070020E+07; // 701710
ref_results[2215] = 1.128913747127193E+06; // 711710
ref_results[2216] = 1.588517947536818E+01; // 711711
ref_results[2217] = 1.280516652133346E+04; // 721710
ref_results[2218] = 3.074776519985239E-01; // 661720
ref_results[2219] = 1.587205581065579E+01; // 671720
ref_results[2220] = 3.312431727175958E+05; // 681720
ref_results[2221] = 5.235335427514920E+05; // 691720
ref_results[2222] = 2.475666750383639E+07; // 701720
ref_results[2223] = 8.986088774659950E+05; // 711720
ref_results[2224] = 3.566069921062357E+01; // 711721
ref_results[2225] = 5.762663412115121E+06; // 721720
Vec_Dbl ref( &ref_results[0], &ref_results[0] + itot );
return ref;
}
//--------//
// tstCRAM5//
//--------//
/******************************************************************************
* Another full system unit test for kernel_cram() *
* *
* Author: Aarno Isotalo *
* *
* The initial concentrations and source term are random (fixed seed) and *
* Depleted for 100d with flux 3.5e14. The results are compared to "blessed" *
* results that were calculated when there was a high confidence that the *
* algorithm works. This is a rather rigorous test that the algorithm has not *
* been broken (or fixed...) since the blessed results were generated. *
* *
* Also, since the entire case is stored with the blessed results it wont *
* break if the library is modified. Thus if this test works but others fail, *
* the problem is most likely not in the CRAM solver. *
* *
*****************************************************************************/
#define MAKE_BLESSED_RESULTS 0 // 1 make blessed results
// 0 runs the actual test
TEST_F( tstCRAM, CompareToBlessed )
{
int i;
{
double b_delta_t;
int b_itot, b_non, b_zero_flux_step, b_is_adjoint, b_cram_order;
int b_internal_steps;
int b_source_order;
double** b_source_term;
Vec_Dbl n( itot ), b_n, b_n0, b_diag, b_a;
Vec_Int b_non0, b_kd, b_loc, b_ZAI;
std::printf( "comparing to blessed results in:\n %s\n",
&b_n0,
&b_source_term,
&b_source_order,
&b_delta_t,
&b_itot,
&b_non,
&b_non0,
&b_kd,
&b_diag,
&b_a,
&b_loc,
&b_zero_flux_step,
&b_is_adjoint,
&b_cram_order,
&b_internal_steps,
&b_ZAI,
kernel_cram( &n[0],
&b_n0[0],
b_source_term,
b_source_order,
b_delta_t,
b_itot,
b_non,
&b_non0[0],
&b_kd[0],
&b_diag[0],
&b_a[0],
&b_loc[0],
b_zero_flux_step,
b_is_adjoint,
b_cram_order,
b_internal_steps,
0,
0.0,
&b_ZAI[0] );
// human-readable illustration of the overall performance
PrintErrorTable( itot, &n[0], &b_n[0] );
// check that there are not too many bad errors
CheckErrors( itot, &n[0], &b_n[0], 1e-40, 1e-10, &b_ZAI[0] );
for( i = 0; i < itot; i++ ) free( b_source_term[i] );
free( b_source_term );
}
else
{
// fold library
flux = 3.5e14;
trx->fold_flux( flux, DLdiag, DLa );
Vec_Dbl diag( DLdiag.begin(), DLdiag.end() );
Vec_Dbl a( DLa.begin(), DLa.end() );
// Set initial composition and step length
Vec_Dbl n( itot ), n0( itot );
double delta_t = 200 * 60 * 60 * 24;
int source_order = 0;
double** source_term = (double**)malloc( itot * sizeof( double* ) );
for( i = 0; i < itot; i++ )
source_term[i] =
(double*)calloc( source_order + 1, sizeof( double ) );
my_drand( 1337LL );
for( i = 0; i < itot; i++ )
{
n0[i] = my_drand();
source_term[i][0] = my_drand() / delta_t;
}
// solve
int zero_flux_step = 0, is_adjoint = 0, cram_order = 16,
internal_steps = 2;
kernel_cram( &n[0],
&n0[0],
source_term,
source_order,
delta_t,
itot,
non,
&non0[0],
&kd[0],
&diag[0],
&a[0],
&loc[0],
zero_flux_step,
is_adjoint,
cram_order,
internal_steps,
0,
0.0,
&ZAI[0] );
/*** Write Blessed results to the new system ***/
char tmpstr[1028];
std::sprintf(
tmpstr, " %s collapsed with flux %.17e", "pwr.rev01.orglib", flux );
&n0[0],
source_term,
source_order,
delta_t,
itot,
non,
&non0[0],
&kd[0],
&diag[0],
&a[0],
&loc[0],
zero_flux_step,
is_adjoint,
cram_order,
internal_steps,
&ZAI[0],
(char*)"tstCRAM5_BlessedResults_NEW.txt",
tmpstr );
for( i = 0; i < itot; i++ ) free( source_term[i] );
free( source_term );
// ensure that the test is never passed when making expm input
ASSERT_EQ( 0, 1 ) << " ************************************************"
"***************\n"
<< " ** Generated blessed results (set by macro in "
"source code) **\n"
<< " ** The actual test is not run. "
" **\n"
<< " ************************************************"
"***************\n"
<< " ** Note that to actually use these results you "
"must copy the **\n"
<< " ** results file and reconfigure. "
" **\n"
<< " ************************************************"
"***************\n";
}
}
//--------//
// tstCRAM6//
//--------//
/******************************************************************************
* This verifies that negative source term works ASSUMING THAT positive *
* source term works. *
* *
* The tests solve the negative source problem and than decompose it to *
* positive source problems, which are solved separately. The results should *
* agree if everything is working fine. *
* *
* The first one gives almost perfect agreement as it is basically the exact *
* same calculation. This would also be true for the other two, except that *
* the culling condition in the solver hits some nuclides differently. When in*
* doubth, disable the culling and rerun. Remember to restore culling after. *
*****************************************************************************/
{
protected:
{
zero_flux_step = 0, is_adjoint = 0, cram_order = 16, internal_steps = 1;
source_order = 0;
remove_negatives = 0;
cutoff = 0.0;
// fold library
flux = 3.5e14;
trx->fold_flux( flux, DLdiag, DLa );
diag.assign(
DLdiag.begin(),
.end() ); // copy(DLdiag.begin(), DLdiag.end(), diag.begin());
a.assign( DLa.begin(), DLa.end() );
// Allocate source term arrays
n0_1.resize( itot, 0.0 );
n_1.resize( itot, 0.0 );
n0_2.resize( itot, 0.0 );
n_2.resize( itot, 0.0 );
n0_3.resize( itot, 0.0 );
n_3.resize( itot, 0.0 );
source_term_1 = (double**)malloc( itot * sizeof( double* ) );
for( i = 0; i < itot; i++ )
(double*)calloc( source_order + 1, sizeof( double ) );
source_term_2 = (double**)malloc( itot * sizeof( double* ) );
for( i = 0; i < itot; i++ )
(double*)calloc( source_order + 1, sizeof( double ) );
source_term_3 = (double**)malloc( itot * sizeof( double* ) );
for( i = 0; i < itot; i++ )
(double*)calloc( source_order + 1, sizeof( double ) );
}
int i;
double cutoff;
{
// free
for( i = 0; i < itot; i++ )
{
free( source_term_1[i] );
free( source_term_2[i] );
free( source_term_3[i] );
}
free( source_term_1 );
free( source_term_2 );
free( source_term_3 );
}
};
/*** 1: source term only *111111111111111111111111111111111111111111111111111*/
TEST_F( tstCRAMNegativeSource, NegativeSourceNoInitial )
{
double delta_t = 200 * 60 * 60 * 24;
int source_order = 0;
my_drand( 1337LL ); // seed
for( i = 0; i < itot; i++ )
{
n0_1[i] = 0.0;
source_term_1[i][0] = -my_drand(); // negat
n0_2[i] = 0.0;
source_term_2[i][0] = -source_term_1[i][0]; // posit
}
kernel_cram( &n_1[0],
&n0_1[0],
source_term_1,
source_order,
delta_t,
itot,
non,
&non0[0],
&kd[0],
&diag[0],
&a[0],
&loc[0],
zero_flux_step,
is_adjoint,
cram_order,
internal_steps,
remove_negatives,
cutoff,
&ZAI[0] );
kernel_cram( &n_2[0],
&n0_2[0],
source_term_2,
source_order,
delta_t,
itot,
non,
&non0[0],
&kd[0],
&diag[0],
&a[0],
&loc[0],
zero_flux_step,
is_adjoint,
cram_order,
internal_steps,
remove_negatives,
cutoff,
&ZAI[0] );
// check (because it is the exact same calculation, there should be no
// significant differences even from numerics or culling
for( i = 0; i < itot; i++ )
ASSERT_FLOAT_EQ( n_1[i], -n_2[i] )
<< "Discrepancy for nuclide " << i << "(" << ZAI[i]
<< ") in first test (negative source no initial)";
}
/*** 2: source + initial *222222222222222222222222222222222222222222222222222*/
TEST_F( tstCRAMNegativeSource, NegativeSourceWithInitial )
{
double delta_t = 200 * 60 * 60 * 24;
int source_order = 0;
my_drand( 13371LL );
for( i = 0; i < itot; i++ )
{
n0_1[i] = my_drand() * delta_t;
source_term_1[i][0] = -my_drand(); // negat
n0_2[i] = n0_1[i];
source_term_2[i][0] = 0.0;
n0_3[i] = 0.0;
source_term_3[i][0] = -source_term_1[i][0]; // posit
}
kernel_cram( &n_1[0],
&n0_1[0],
source_term_1,
source_order,
delta_t,
itot,
non,
&non0[0],
&kd[0],
&diag[0],
&a[0],
&loc[0],
zero_flux_step,
is_adjoint,
cram_order,
internal_steps,
remove_negatives,
cutoff,
&ZAI[0] );
kernel_cram( &n_2[0],
&n0_2[0],
source_term_2,
source_order,
delta_t,
itot,
non,
&non0[0],
&kd[0],
&diag[0],
&a[0],
&loc[0],
zero_flux_step,
is_adjoint,
cram_order,
internal_steps,
remove_negatives,
cutoff,
&ZAI[0] );
kernel_cram( &n_3[0],
&n0_3[0],
source_term_3,
source_order,
delta_t,
itot,
non,
&non0[0],
&kd[0],
&diag[0],
&a[0],
&loc[0],
zero_flux_step,
is_adjoint,
cram_order,
internal_steps,
remove_negatives,
cutoff,
&ZAI[0] );
// make n2 the full result
for( i = 0; i < itot; i++ ) n_2[i] -= n_3[i];
// human-readable illustration of the overall performance
PrintErrorTable( itot, &n_1[0], &n_2[0] );
// check that there are not too many bad errors
CheckErrors( itot, &n_1[0], &n_2[0], 1e-20 * delta_t, 1e-8, &ZAI[0] );
}
/*** 3: source + initial, source has both positive and negative values *33333*/
TEST_F( tstCRAMNegativeSource, MixedSourceWithInitial )
{
double delta_t = 200 * 60 * 60 * 24;
int source_order = 0;
my_drand( 13371113LL );
for( i = 0; i < itot; i++ )
{
n0_1[i] = my_drand() * delta_t;
source_term_1[i][0] = ( my_drand() - 0.5 ) * 2; // negat
n0_2[i] = n0_1[i];
if( source_term_1[i][0] > 0.0 )
source_term_2[i][0] = source_term_1[i][0]; // posit. values
else
source_term_2[i][0] = 0.0;
n0_3[i] = 0.0;
if( source_term_1[i][0] < 0.0 )
source_term_3[i][0] =
-source_term_1[i][0]; // negat. values as posit.
else
source_term_3[i][0] = 0.0;
}
kernel_cram( &n_1[0],
&n0_1[0],
source_term_1,
source_order,
delta_t,
itot,
non,
&non0[0],
&kd[0],
&diag[0],
&a[0],
&loc[0],
zero_flux_step,
is_adjoint,
cram_order,
internal_steps,
remove_negatives,
cutoff,
&ZAI[0] );
kernel_cram( &n_2[0],
&n0_2[0],
source_term_2,
source_order,
delta_t,
itot,
non,
&non0[0],
&kd[0],
&diag[0],
&a[0],
&loc[0],
zero_flux_step,
is_adjoint,
cram_order,
internal_steps,
remove_negatives,
cutoff,
&ZAI[0] );
kernel_cram( &n_3[0],
&n0_3[0],
source_term_3,
source_order,
delta_t,
itot,
non,
&non0[0],
&kd[0],
&diag[0],
&a[0],
&loc[0],
zero_flux_step,
is_adjoint,
cram_order,
internal_steps,
remove_negatives,
cutoff,
&ZAI[0] );
// make n2 the full result
for( i = 0; i < itot; i++ ) n_2[i] -= n_3[i];
// human-readable illustration of the overall performance
PrintErrorTable( itot, &n_1[0], &n_2[0] );
// check that there are not too many bad errors
CheckErrors( itot, &n_1[0], &n_2[0], 1e-20 * delta_t, 1e-8, &ZAI[0] );
}
//--------//
// tstCRAM7//
//--------//
/******************************************************************************
* This tests the adjoint calculation ASSUMING THAT FORWARD CALCULATION WORKS *
* *
* Tests are based on the fancy properties of adjoint. *
* *
*****************************************************************************/
TEST_F( tstCRAM, TestAdjointNoSource )
{
int i;
// fold library
flux = 3.5e14;
trx->fold_flux( flux, DLdiag, DLa );
Vec_Dbl diag( DLdiag.begin(), DLdiag.end() );
Vec_Dbl a( DLa.begin(), DLa.end() );
/*** FORWARD ***/
// Set initial composition and step length
double delta_t = 100 * 60 * 60 * 24;
Vec_Dbl n( itot, 0.0 ), n0( itot, 0.0 );
int source_order = -1;
double** source_term = nullptr;
my_drand( 1326437645LL );
for( i = 0; i < itot; i++ ) n0[i] = my_drand();
// Solve
int zero_flux_step = 0, is_adjoint = 0, cram_order = 16, internal_steps = 1;
int remove_negatives = 0;
double cutoff = 0.0;
kernel_cram( &n[0],
&n0[0],
source_term,
source_order,
delta_t,
itot,
non,
&non0[0],
&kd[0],
&diag[0],
&a[0],
&loc[0],
zero_flux_step,
is_adjoint,
cram_order,
internal_steps,
remove_negatives,
cutoff,
&ZAI[0] );
/*** ADJOINT ***/
is_adjoint = 1;
// Set initial composition
Vec_Dbl a_n0( itot, 0.0 ), a_n( itot, 0.0 );
for( i = 0; i < itot; i++ ) a_n0[i] = my_drand();
// Solve
kernel_cram( &a_n[0],
&a_n0[0],
source_term,
source_order,
delta_t,
itot,
non,
&non0[0],
&kd[0],
&diag[0],
&a[0],
&loc[0],
zero_flux_step,
is_adjoint,
cram_order,
internal_steps,
remove_negatives,
cutoff,
&ZAI[0] );
/*** check ***/
double dot1 = 0.0, dot2 = 0.0;
for( i = 0; i < itot; i++ )
{
dot1 += a_n0[i] * n[i];
dot2 += n0[i] * a_n[i];
}
ASSERT_FLOAT_EQ( dot1, dot2 );
std::printf( "a_n0*n=%.15e n0*a_n=%.15e rel.dif. %.2e\n",
dot1,
dot2,
dot1 / dot2 - 1 );
}
TEST_F( tstCRAM, TestAdjointWithSource )
{
int i;
int idx = trx->find_nuclide_guess( 922350 );
int nstep = 100;
// fold library
flux = 3.5e14;
trx->fold_flux( flux, DLdiag, DLa );
Vec_Dbl diag( DLdiag.begin(), DLdiag.end() );
Vec_Dbl a( DLa.begin(), DLa.end() );
/*** FORWARD ***/
// Set initial composition and step length
Vec_Dbl n( itot, 0.0 ), n0( itot, 0.0 );
double delta_t = 300 * 60 * 60 * 24;
my_drand( 543637627LL );
// cannot rand all nuclides because some short-lived would populate u235
// causing the concentration to change too fast for the simple integration
n0[trx->find_nuclide_guess( 922340 )] = my_drand() * 1e20;
n0[trx->find_nuclide_guess( 922360 )] = my_drand() * 1e20;
n0[trx->find_nuclide_guess( 922380 )] = my_drand() * 1e20;
n0[trx->find_nuclide_guess( 942390 )] = my_drand() * 1e20;
n0[idx] = 1e20;
int source_order = -1;
double** source_term = nullptr;
// Solve
int zero_flux_step = 0, is_adjoint = 0, cram_order = 16, internal_steps = 1;
int remove_negatives = 2;
double cutoff = 0.0;
// we need to integrate the concentration of U235 over time.
double t = delta_t / (double)nstep;
double integral = 0.0;
double prev = n0[idx];
for( i = 0; i < nstep; i++ )
{
kernel_cram( &n[0],
&n0[0],
source_term,
source_order,
t * ( i + 1 ),
itot,
non,
&non0[0],
&kd[0],
&diag[0],
&a[0],
&loc[0],
zero_flux_step,
is_adjoint,
cram_order,
internal_steps,
remove_negatives,
cutoff,
&ZAI[0] );
integral += ( prev + n[idx] ) / 2 * t;
prev = n[idx];
}
/*** ADJOINT CALCULATION ***/
is_adjoint = 1;
// Set initial composition (zero)
Vec_Dbl a_n0( itot, 0.0 ), a_n( itot, 0.0 );
// this test only works with source term on long lived nuclides,
// with initial composition much higher than the source production
source_order = 0;
source_term = (double**)malloc( itot * sizeof( double* ) );
for( i = 0; i < itot; i++ )
source_term[i] = (double*)calloc( source_order + 1, sizeof( double ) );
source_term[idx][0] = 1;
// Solve
kernel_cram( &a_n[0],
&a_n0[0],
source_term,
source_order,
delta_t,
itot,
non,
&non0[0],
&kd[0],
&diag[0],
&a[0],
&loc[0],
zero_flux_step,
is_adjoint,
cram_order,
internal_steps,
remove_negatives,
cutoff,
&ZAI[0] );
/*** check ***/
double dot = 0.0;
integral *= source_term[idx][0];
for( i = 0; i < itot; i++ )
{
dot += n0[i] * a_n[i];
}
std::printf( "integral=%.15e dot=%.15e rel.dif. %.2e\n",
integral,
dot,
integral / dot - 1 );
ASSERT_NEAR( integral, dot, 2e-6 * dot );
// free
for( i = 0; i < itot; i++ ) free( source_term[i] );
free( source_term );
}
//--------//
// tstCRAM8//
//--------//
/******************************************************************************
* Test time dependent source term. Tome of the tests assume that constant
* source term works
*****************************************************************************/
TEST( tstCRAM8, SingleTermSource )
{
const int itot = 6; // number of nuclides
const int non = 0; // number of reactions (non-diag. elements in A)
int non0[itot] = {0}; // number of parents for nuclide i
int kd[itot] = {0}; // number of decay parents for nuclide i
double n0[itot] = {0}; // initial atomic densities
double n[itot] = {0}; // final compositions go here
double delta_t; // time step length
double diag[itot] = {0}; // diagonal elements of A
double a[1] = {-99}; // non-diagonal elements of A
int loc[1] = {-99}; // matrix A parent pointers
double** source_term; // source term
int source_order;
int zero_flux_step; // is the step decay only?
int is_adjoint; // is this adjoint calculation?
int cram_order;
int internal_steps;
int remove_negatives;
double cutoff;
double solution[itot];
int i;
zero_flux_step = 0;
is_adjoint = 0;
source_order = itot - 1;
source_term = (double**)malloc( itot * sizeof( double* ) );
for( i = 0; i < itot; i++ )
source_term[i] = (double*)calloc( source_order + 1, sizeof( double ) );
delta_t = 1.15572734979e8;
my_drand( 13781LL );
for( i = 0; i < itot; i++ )
{
source_term[i][i] =
2 * ( my_drand() - 0.5 ) / pow( delta_t, i ) * ( i + 1 );
solution[i] = source_term[i][i] * pow( delta_t, i + 1 ) / ( i + 1 );
}
cram_order = 16;
internal_steps = 1;
remove_negatives = 0;
cutoff = 0.0;
n0,
source_term,
source_order,
delta_t,
itot,
non,
non0,
kd,
diag,
a,
loc,
zero_flux_step,
is_adjoint,
cram_order,
internal_steps,
remove_negatives,
cutoff,
nullptr );
for( i = 0; i < itot; i++ )
EXPECT_NEAR(
solution[i], n[i], std::fabs( solution[i] * pow( 10, -10 + i ) ) )
<< "Discrepancy with term " << i << " (" << source_term[i][i]
<< ")\n";
for( i = 0; i < itot; i++ ) free( source_term[i] );
free( source_term );
}
TEST( tstCRAM8, MultiTermSource )
{
const int itot = 6; // number of nuclides
const int non = 0; // number of reactions (non-diag. elements in A)
int non0[itot] = {0}; // number of parents for nuclide i
int kd[itot] = {0}; // number of decay parents for nuclide i
double n0[itot] = {0}; // initial atomic densities
double n[itot] = {0}; // final compositions go here
double delta_t; // time step length
double diag[itot] = {0}; // diagonal elements of A
double a[1] = {-99}; // non-diagonal elements of A
int loc[1] = {-99}; // matrix A parent pointers
double** source_term; // source term
int source_order;
int zero_flux_step; // is the step decay only?
int is_adjoint; // is this adjoint calculation?
int cram_order;
int internal_steps;
int remove_negatives;
double cutoff;
double solution[itot] = {0};
int i, j;
zero_flux_step = 0;
is_adjoint = 0;
source_order = itot - 1;
source_term = (double**)malloc( itot * sizeof( double* ) );
for( i = 0; i < itot; i++ )
source_term[i] = (double*)calloc( source_order + 1, sizeof( double ) );
delta_t = 1.15572734979e8;
my_drand( 338543781LL );
for( i = 0; i < itot; i++ )
for( j = 0; j < i + 1; j++ )
{
source_term[i][j] = 2 * ( my_drand() - 0.5 ) / pow( delta_t, i );
solution[i] +=
source_term[i][j] * pow( delta_t, j + 1 ) / ( j + 1 );
}
cram_order = 16;
internal_steps = 1;
remove_negatives = 0;
cutoff = 0.0;
n0,
source_term,
source_order,
delta_t,
itot,
non,
non0,
kd,
diag,
a,
loc,
zero_flux_step,
is_adjoint,
cram_order,
internal_steps,
remove_negatives,
cutoff,
nullptr );
for( i = 0; i < itot; i++ )
EXPECT_NEAR(
solution[i], n[i], std::fabs( solution[i] * pow( 10, -10 + i ) ) )
<< "Discrepancy with term " << i << " (" << source_term[i][i]
<< ")\n";
for( i = 0; i < itot; i++ ) free( source_term[i] );
free( source_term );
}
// this tests that higher order terms produce correct amount by having stable
// target nuclides for them
TEST_F( tstCRAM, FullSystemLinearSource )
{
int i, j;
int zero_flux_step = 0, is_adjoint = 0, cram_order = 16, internal_steps = 1;
int remove_negatives = 0;
double cutoff = 0.0;
// fold library
flux = 3.5e14;
trx->fold_flux( flux, DLdiag, DLa );
Vec_Dbl diag( DLdiag.begin(), DLdiag.end() );
Vec_Dbl a( DLa.begin(), DLa.end() );
// Set initial composition, source term and step length
Vec_Dbl n( itot, 0.0 ), n0( itot, 0.0 );
double delta_t = 300 * 60 * 60 * 24;
int source_order = 6;
double** source_term = (double**)malloc( itot * sizeof( double* ) );
for( i = 0; i < itot; i++ )
source_term[i] = (double*)calloc( source_order + 1, sizeof( double ) );
/*
my_drand(2632731);
for (i=0; i<itot; i++)
for (j=0; j<source_order+1; j++)
{
source_term[i][j] = 2*(my_drand()-0.0)/ pow(delta_t,j) *(j+1);
}
*/
int idx = trx->find_nuclide_guess( 922350 );
my_drand( 2632731LL );
for( j = 0; j < source_order + 1; j++ )
source_term[idx][j] =
2 * ( my_drand() - 0.0 ) / pow( delta_t, j ) * ( j + 1 );
// solve using time dependent source term
kernel_cram( &n[0],
&n0[0],
source_term,
source_order,
delta_t,
itot,
non,
&non0[0],
&kd[0],
&diag[0],
&a[0],
&loc[0],
zero_flux_step,
is_adjoint,
cram_order,
internal_steps,
remove_negatives,
cutoff,
&ZAI[0] );
// solve by integrating
int nstep = 10;
Vec_Dbl n2( itot, 0 );
// this is used for constant approximation source term
double** src = (double**)malloc( itot * sizeof( double* ) );
for( i = 0; i < itot; i++ ) src[i] = (double*)calloc( 1, sizeof( double ) );
int s;
for( s = 0; s < nstep; s++ )
{
double t1 = s * delta_t / (double)nstep;
double t2 = ( s + 1 ) * delta_t / (double)nstep;
for( i = 0; i < itot; i++ )
{
src[i][0] = source_term[i][0];
for( j = 1; j < source_order + 1; j++ )
{
// src[i][0] += source_term[i][j]*(pow(t2,j)+pow(t1,j))/2;
src[i][0] += source_term[i][j] / ( j + 1 ) *
( pow( t2, j + 1 ) - pow( t1, j + 1 ) ) /
( t2 - t1 );
}
}
if( s > 0 ) copy( &n2[0], &n2[0] + itot, &n0[0] );
kernel_cram( &n2[0],
&n0[0],
src,
0,
t2 - t1,
itot,
non,
&non0[0],
&kd[0],
&diag[0],
&a[0],
&loc[0],
zero_flux_step,
is_adjoint,
cram_order,
internal_steps,
remove_negatives,
cutoff,
&ZAI[0] );
}
// human-readable illustration of the overall performance
PrintErrorTable( itot, &n2[0], &n[0] );
// check that there are not too many bad errors
// CheckErrors(itot, &n[0], &n_ref[0], 1e-18, 1e-8, &ZAI[0]);
for( i = 0; i < itot; i++ ) free( source_term[i] );
free( source_term );
for( i = 0; i < itot; i++ ) free( src[i] );
free( src );
}